python使用redis内存数据库

#安装Redis服务器端  
apt-get install redis-server

# 检查Redis服务器系统进程
~ ps -aux|grep redis
redis     4162  0.1  0.0  10676  1420 ?        Ss   23:24   0:00 /usr/bin/redis-server /etc/redis/redis.conf
conan     4172  0.0  0.0  11064   924 pts/0    S+   23:26   0:00 grep --color=auto redis

# 通过启动命令检查Redis服务器状态
~ netstat -nlt|grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN

# 通过启动命令检查Redis服务器状态
~ sudo /etc/init.d/redis-server status
redis-server is running


#python redis模块安装redis-py
easy_install redis

#Parser安装 Parser可以控制如何解析redis响应的内容。redis-py包含两个Parser类,PythonParser和HiredisParser。默认,如果已经安装了hiredis模块,redis-py会使用HiredisParser,否则会使用PythonParser。
#HiredisParser是C编写的,由redis核心团队维护,性能要比PythonParser提高10倍以上,所以推荐使用。安装方法,使用easy_install:
easy_install hiredis

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。

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')

redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

import redis
 
pool = redis.ConnectionPool(host='127.0.0.1', port=9212)
r = redis.Redis(connection_pool=pool)
r.set('one', 'first')
r.set('two', 'second')
print r.get('one')
print r.get('two')

redis pipeline机制,可以在一次请求中执行多个命令,这样避免了多次的往返时延。

import redis
 
pool = redis.ConnectionPool(host='127.0.0.1', port=9212)
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()

redis-py默认在一次pipeline中的操作是原子的,要改变这种方式,可以传入transaction=False

pipe = r.pipeline(transaction=False)