Redis-深入了解
发布日期:2016-4-15 16:4:58
Redis-深入了解 今天的主题是:
本期介绍redis-py 一、开始 >>> import redis >>> r = redis.StrictRedis(host='localhost', port=6379, db=0) >>> r.set('name', 'quxl') True >>> r.get('name') 'quxl' 二、 API 参考 Redis的官方文档做了很多事情,并且详细的解释了每个命令。redis-py提供两个类,一是Redis,二是StrictRedis,用于实现Redis的命令。StrictRedis则用于实现大部分官方的命令,并且使用官方的语法与命令(比如,SET命令对应与StrictRedis.set方法)。当然也有例外,如下面所示:
变化就是上面这5点。Redis是StrictRedis的子类,重写了一些方法,调整了参数,入下面这3点。使之更Pythonic。
更多的信息请参考Redis-py官网文档 三、连接 python-py连接redis-server 共有如下5种: 第1种:ConnectionPool(连接池): 默认情况下,Connection 是一个普通的 TCP 连接。 r = redis.StrictRedis(host="loaclhost",port=7369,db=1) #默认情况会产生一个连接 第2种: UnixDomainSocketConnection(UNIX Domain Sockets) >>> r = redis.Redis(unix_socket_path='/tmp/redis.sock')#以UNIX doamin Sockets连接 第3种: 连接池: redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这就可以实现多个Redis实例共享一个连接池。 >>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0) >>> r = redis.Redis(connection_pool=pool) #Redis 类以连接池连接redis-server >>> r = redis.StrictRedis(connection_pool=pool) #Strict 类以线连接池连接redis-server 第4种: redis的pipeline机制 默认情况下一次pipline操作就是一次原子操作,要么都成功要么都失败,与事物类似。 import redis pool = redis.ConnectionPool(host='localhost', port=7369) r = redis.Redis(connection_pool=pool) pipe = r.pipeline() pipe.set('one', 'first') pipe.set('two', 'second') pipe.execute() pipe.set('one'. 'first').rpush('list', 'hello').rpush('list', 'world').execute() 要改变这种方式,可以传入transaction=False, pipe = r.pipeline(transaction=False) 第5种: Pub/Sub 订阅与发布 Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能。基于事件的系统中的Pub/Sub是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:
import redis r = redis.StrictRedis() pb = r.pubsub() pb.subscribe('quxl') for msg in pb.listen(): print msg import redis r = redis.StrictRedis() r.publist('quxl','我好困') 此时监听者就会得到如下响应: {'pattern': None, 'type': 'message', 'channel': 'quxl', 'data': '\xe6\x88\x91\xe5\xa5\xbd\xe5\x9b\xb0'} 四、参考资料: 以下是参考资料,若想要更详细的信息,请参阅下面的网址内容: [1]:https://github.com/andymccurdy/redis-py [2]:http://blog.sina.com.cn/s/blog_62b832910100xok2.html [3]:http://redis-py.readthedocs.org/en/latest/ [4]:http://blog.csdn.net/stevenliyong/article/details/5305066 以后会更新一些mysql的信息,欢迎阅读。 下一条: 微软公布Linux版SQL细节
|