Python에서 Redis를 설치하고 사용하는 방법에 대한 자세한 설명

高洛峰
풀어 주다: 2017-03-04 16:26:36
원래의
2197명이 탐색했습니다.

이 글은 주로 Python에서 Redis를 설치하고 사용하는 방법을 소개하고, 구체적인 설치 및 구성 단계를 분석하고, Redis 데이터베이스의 구체적인 사용 기술을 예시와 함께 자세히 분석합니다.

이 기사의 예에서는 Python에서 Redis를 설치하고 사용하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

1. 설치

알겠습니다. 가장 간단한 설치만 알고 있음을 인정합니다.

sudo apt-get install redis-server
로그인 후 복사

python 지원 패키지: (사실 그냥 파일이므로 그냥 받아서 사용하시면 됩니다)

sudo apt-get install python-redis
로그인 후 복사

2. 구성

기본 구성 파일은 "/etc/redis/redis.conf"
바인딩 IP:

<입니다. 🎜>

"bind 127.0.0.1″ -> "bind 10.0.1.7″
로그인 후 복사

디스크 동기화를 1초마다 비동기화 또는 동기화로 변경합니다. 항상 동기화하기에는 너무 느립니다.

"appendfsync always" -> "appendfsync no"
로그인 후 복사

백그라운드 실행을 확인하세요. 열지 여부:

"daemonize yes"

또는 설정하려는 다른 항목(예:

Connection timeout) : "timeout 300"

실행레벨 : "loglevel 공지" (개인적으로는 기본이 꽤 좋다고 생각합니다. 큰 예외가 없다면 디버깅으로 변경할 필요는 없습니다)

3.

#! /usr/bin/env python
#coding=utf-8
import redis
print redis.__file__
# 连接,可选不同数据库
r = redis.Redis(host=&#39;10.0.1.7&#39;, port=6379, db=1)
# -------------------------------------------
# 看信息
info = r.info()
for key in info:
 print "%s: %s" % (key, info[key])
# 查数据库大小
print &#39;\ndbsize: %s&#39; % r.dbsize()
# 看连接
print "ping %s" % r.ping()
# 选数据库
#r.select(2)
# 移动数据去2数据库
#r.move(&#39;a&#39;,2)
# 其他
#r.save(&#39;a&#39;) # 存数据
#r.lastsave(&#39;a&#39;) # 取最后一次save时间
#r.flush() #刷新
#r.shutdown() #关闭所有客户端,停掉所有服务,退出服务器
#
#--------------------------------------------
# 它有四种类型: string(key,value)、list(序列)、set(集合)、zset(有序集合,多了一个顺序属性)
# 不知道你用的哪种类型?
# print r.get_type(&#39;a&#39;) #可以告诉你
# -------------------------------------------
# string操作
print &#39;-&#39;*20
# 塞数据
r[&#39;c1&#39;] = &#39;bar&#39;
#或者
r.set(&#39;c2&#39;,&#39;bar&#39;)
#这里有个 getset属性,如果为True 可以在存新数据时将上次存储内容同时搞出来
print &#39;getset:&#39;,r.getset(&#39;c2&#39;,&#39;jj&#39;)
#如果你想设置一个递增的整数 每执行一次它自加1:
print &#39;incr:&#39;,r.incr(&#39;a&#39;)
#如果你想设置一个递减的整数 please:
print &#39;decr:&#39;,r.decr(&#39;a&#39;)
# 取数据
print &#39;r[&#39;&#39;]:&#39;,r[&#39;c1&#39;]
#或者
print &#39;get:&#39;,r.get(&#39;a&#39;)
#或者 同时取一批
print &#39;mget:&#39;,r.mget(&#39;c1&#39;,&#39;c2&#39;)
#或者 同时取一批 它们的名字(key)很像 而恰好你又不想输全部
print &#39;keys:&#39;,r.keys(&#39;c*&#39;)
#又或者 你只想随机取一个:
print &#39;randomkey:&#39;,r.randomkey()
# 查看一个数据有没有 有 1 无0
print &#39;existes:&#39;,r.exists(&#39;a&#39;)
# 删数据 1是删除成功 0和None是没这个东西
print &#39;delete:&#39;,r.delete(&#39;cc&#39;)
# 哦对了 它是支持批量操作的
print &#39;delete:&#39;,r.delete(&#39;c1&#39;,&#39;c2&#39;)
# 其他
r.rename(&#39;a&#39;,&#39;c3&#39;) #呃.改名
r.expire(&#39;c3&#39;,10) #让数据10秒后过期 说实话我不太明白么意思
r.ttl(&#39;c3&#39;) #看剩余过期时间 不存在返回-1
#--------------------------------
# 序列(list)操作
print &#39;-&#39;*20
# 它是两头通的
# 塞入
r.push(&#39;b&#39;,&#39;gg&#39;)
r.push(&#39;b&#39;,&#39;hh&#39;)
# head 属性控制是不是从另一头塞
r.push(&#39;b&#39;,&#39;ee&#39;,head=True)
# 看长度
print &#39;list len:&#39;,r.llen(&#39;b&#39;)
# 列出一批出来
print &#39;list lrange:&#39;,r.lrange(&#39;b&#39;,start=0,end=-1)
# 取出一位
print &#39;list index 0:&#39;,r.lindex(&#39;b&#39;,0)
# 修剪列表
#若start 大于end,则将这个list清空
print &#39;list ltrim :&#39;,r.ltrim(&#39;b&#39;,start=0,end=3) #只留 从0到3四位
# 排序
# 这可是个大工程
#--------------------------------
# 集合(set)操作
# 塞数据
r.sadd(&#39;s&#39;, &#39;a&#39;)
# 判断一个set长度为多少 不存在为0
r.scard(&#39;s&#39;)
# 判断set中一个对象是否存在
r.sismember(&#39;s&#39;,&#39;a&#39;)
# 求交集
r.sadd(&#39;s2&#39;,&#39;a&#39;)
r.sinter(&#39;s1&#39;,&#39;s2&#39;)
#求交集并将结果赋值
r.sinterstore(&#39;s3&#39;,&#39;s1&#39;,&#39;s2&#39;)
# 看一个set对象
r.smembers(&#39;s3&#39;)
# 求并集
r.sunion(&#39;s1&#39;,&#39;s2&#39;)
# 阿 我想聪明的你已经猜到了
#求并集 并将结果返回
r.sunionstore(&#39;ss&#39;,&#39;s1&#39;,&#39;s2&#39;,&#39;s3&#39;)
# 求不同
# 在s1中有,但在s2和s3中都没有的数
r.sdiff(&#39;s1&#39;,&#39;s2&#39;,&#39;s3&#39;)
r.sdiffstore(&#39;s4&#39;,&#39;s1&#39;,&#39;s2&#39;)# 这个你懂的
# 取个随机数
r.srandmember(&#39;s1&#39;)
#-------------------------------------
#zset 有序set
#&#39;zadd&#39;, &#39;zcard&#39;, &#39;zincr&#39;, &#39;zrange&#39;, &#39;zrangebyscore&#39;, &#39;zrem&#39;, &#39;zscore&#39;
# 分别对应
#添加, 数量, 自加1,取数据,按照积分(范围)取数据,删除,取积分
# 我靠 你玩死我了 redis!
# 今天在实验中,我尝试插入一条zset类型数据:
r1.zset(u&#39;www.liyi99.com&#39;,&#39;liwu&#39;,3)
# 插入成功
# 我继续插入
r1.zset(u&#39;www.liyi99,com&#39;,u&#39;\u9001\u793c&#39;,5)
#报错:
#UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe4 in position 0: ordinal not in range(128)
#这次插入的是礼物的中文词 unicode编码
#为什么会失败那,这条数据是我从redis里面取出来然后没做任何修改再插入的阿
#redis返回和接受的数据类型都是unicode编码的阿
#好吧,我们再次插入试试
#再次插入
r1.zset(&#39;www.liyi99.com&#39;,u&#39;\u9001\u793c&#39;,5)
#成功了
#插入
r1.zset(&#39;www.liyi99.com&#39;,&#39;礼物&#39;,5)
#依然成功,跟入redis.py 1024行
return self.send_command(&#39;ZADD %s %s %s\r\n%s\r\n&#39; % (
  key, score, len(member), member))
# 哦 万恶的编码转换!
#不过取的时候,不论第一个是何种类型的数据都无关系
로그인 후 복사
사용 Python 설치 및 Redis 사용에 대한 자세한 내용은 PHP 중국어 홈페이지를 참고해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!