sudo pip install redis sudo pip install hiredis
Parser能够控制如何解析redis响应的内容。redis-py包含两个Parser类,PythonParser和HiredisParser。默认,若是已经安装了hiredis模块,redis-py会使用HiredisParser,不然会使用PythonParser。HiredisParser是C编写的,由redis核心团队维护,性能要比PythonParser提升10倍以上,因此推荐使用。 redis
redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(好比,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。 简单说,官方推荐使用StrictRedis方法。 ide
不推荐Redis类,缘由是他和我们在redis-cli操做有些不同,主要不同是下面这三个方面。 性能
·LREM:参数 ‘num’ 和 ‘value’ 的顺序交换了一下,cli是 lrem queueName 0 ‘string’ 。 这里的0时全部的意思。 可是Redis这个类,把控制和string调换了。 ui
·ZADD:实现时 score 和 value 的顺序不当心弄反了,后来有人用了,就这样了事务
·SETEX: time 和 value 的顺序反了ip
.Pool: 链接池内存
import redis r = redis.StrictRedis(host='127.0.0.1', port=9212) r.set('foo', 'hello') r.rpush('mylist', 'one') print r.get('foo') print r.rpop('mylist')
若是在建立StrictRedis实例时没有指定链接池connection pool,那会自动建立一个。咱们能够先建好一个链接池,在建立StrictRedis时指定该链接池,这样就能够实现多个StrictRedis实例共享一个链接池了。这样能够节省内存等资源消耗。资源
import redis pool = redis.ConnectionPool(host='127.0.0.1', port=9212) r_1 = redis.StrictRedis(connection_pool = pool)
r_2 = redis.StrictRedis(connection_pool = pool)
r_1.set('one', 'first')
r_2.set('two', 'second')
print r_1.get('one')
print r_2.get('two')
redis pipeline机制,对应的是redis中的事务(其实称为pipeline更准确),能够在一次请求中执行多个命令,这样避免了屡次的往返时延。rem
参考:get