安装
docker run -d -p 6379:6379 redis
操作
连接
redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
def save_to_redis(key, value):
r = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWORD,
decode_responses=True)
return r.set(key, value, ex=REDIS_EXPIRE_TIME)
2. 连接池
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
def save_to_redis(key, value):
r = redis.ConnectionPool(host=REDIS_HOST, port=REDIS_PORT, decode_responses=True, password=REDIS_PASSWORD,)
return r.set(key, value, ex=REDIS_EXPIRE_TIME)
3.redis 基本命令 String
3.1 set(name, value, ex=None, px=None, nx=False, xx=False)
在 Redis 中设置值,默认,不存在则创建,存在则修改。
参数:
- ex - 过期时间(秒)
- px - 过期时间(毫秒)
- nx - 如果设置为True,则只有name不存在时,当前set操作才执行
- xx - 如果设置为True,则只有name存在时,当前set操作才执行
1.ex - 过期时间(秒) 这里过期时间是3秒,3秒后p,键food的值就变成None
2.px - 过期时间(豪秒) 这里过期时间是3豪秒,3毫秒后,键foo的值就变成None
3.nx - 如果设置为True,则只有name不存在时,当前set操作才执行 (新建)
4.xx - 如果设置为True,则只有name存在时,当前set操作才执行 (修改)
3.2.setnx(name, value)
设置值,只有name不存在时,执行设置操作(添加)
print(r.setnx('fruit1', 'banana')) # fruit1不存在,输出为True
3.3.setex(name, time, value)
其它命令使用过后再补充。
参考
https://www.cnblogs.com/bigberg/p/8259903.html
http://runoob.com/w3cnote/python-redis-intro.html
来源:oschina
链接:https://my.oschina.net/csp277/blog/3171480