1.先安装 redis,pyredis
sudo pip install redis
sudo pip install python-redis
2.示例:
importredis
>>>r=redis.Redis(host='localhost',port=6379,db=0)
>>>r.set('guo','shuai')
True
>>>r.get('guo')
'shuai'
>>>r['guo']
'shuai'
>>>r.keys()
['guo']
>>>r.dbsize() #当前数据库包含多少条数据
1L
>>>r.delete('guo')
1
>>>r.save() #执行“检查点”操作,将数据写回磁盘。保存时阻塞
True
>>>r.get('guo');
>>>r.flushdb() #清空r中的所有数据
True
3.管道:
server和client之间是利用socket发送tcp报文进行通信的,利用pipeline的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端。这样就能节省浪费在网络延迟上的时间, pipeline方式打包命令发送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。所以并是不是打包的命令越多越好。
p=r.pipeline() --创建一个管道
>>>p.set('hello','redis')
>>>p.sadd('faz','baz')
>>>p.incr('num')
>>>p.execute()
[True,1,1]
>>>r.get('hello')
管道的命令可以写在一起,如:
1 | >>>p.set('hello','redis').sadd('faz','baz').incr('num').execute() |
默认的情况下,管道里执行的命令可以保证执行的原子性,执行pipe = r.pipeline(transaction=False)可以禁用这一特性。
附:Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控、通知、自动故障转移。