python操作redis
1、连接方式
redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类
import redis
r=redis.Redis(host='127.0.0.1',port=6379,db=0)
r.set('name','wushan')
print(r.get('name'))
#输出
b'wushan'
2、连接池
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
import redis
pool = redis.ConnectionPool(host='127.0.0.1',port=6379)
r = redis.Redis(connection_pool=pool)
r.set('name1','wushan')
print(r.get('name1'))
#输出
b'wushan'
数据操作
string操作
- redis中的string在内存中按照一个name对应一个value来存储的。
- set(name, value, ex=None, px=None, nx=False, xx=False)
在Redis中设置值,默认,不存在则创建,存在则修改 - 参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,岗前set操作才执行
头部连接信息都是一样的
r.set('age','20')
print(r.get('age'))
#输出
b'20'
- setnx(name,value
设置值,只有name不存在时,执行设置操作(添加)
r.setnx('a', 'python') # 第一次设置时,键值a不存在
r.setnx('a', 'golang') # 再次设置,键值a已经存在了
print(r.get('a'))
#输出
b'python
- setex(name,value,time)
设置值
参数:
time,过期时间(数字秒 或 timedelta对象)