一,python安装redis模块
pip3 install -y redis
二,python连接redis
import redis r = redis.Redis(host=‘192.168.1.108‘,port=6379,password=‘dasini‘,db=0) # r = redis.StrictRedis(host=‘192.168.1.108‘,port=6379,db=0)端口可以默认可以不写 r.set(‘name‘,‘test‘) print(r.get(‘name‘)) #redis输出的结果默认是二进制流,为了方便其他代码处理,所以我们可以添加decode_resopnses=True. import redis r = redis.Redis(host=‘192.168.1.108‘,port=6379,password=‘dasini‘,db=0,decode_responses=True) r .set(‘name‘,‘python‘) print(r.get(‘name‘))
三,使用连接池
import redis pool = redis.ConnectionPool(host=‘192.168.1.108‘,port=6379,password=‘dasini‘,db=0,decode_responses=True) r = redis.Redis(connection_pool=pool) r.set(‘name2‘,‘ruby‘) print(r.get(‘name2‘))
四,常用的数据类型的操作
a,String操作
import redis
pool=redis.ConnectionPool(host=‘192.168.1.108‘,port=6379,password=‘dasini‘,db=0,decode_responses=True)
r = redis.Redis(connection_pool=pool)
#set(name, value, ex=None, px=None, nx=False, xx=False) 创建key和value
‘‘‘
ex 表示过期时间,以s为单位
px 表示过期时间,以ms为单位
nx 当nx的值为True时,如果name不存在,则执行set操作
xx 当xx的值为True时,如果name存在,则执行set操作
‘‘‘
r.set(‘name‘,‘python‘)
print(r.get(‘name‘))
# 运行结果:python
#创建过期时间的key
r.set(‘sex‘,‘male‘,ex=100)
print(r.get(‘sex‘))
#setnx,和set中的参数nx一样,如果key存在,则不执行set操作。
r.setnx(‘name‘,‘ruby‘)
print(r.get(‘name‘))
# 运行结果:python
#setex,psetex 和set中参数ex一样,可以设置生命周期,其中setex单位为s,psetex单位为ms.
r.setex(‘address‘,‘sh‘,100)
r.psetex(‘mail‘,100,‘ttsir@foxmail.com‘)
#mset 批量设置key
r.mset(name1=‘tom‘,name2=‘jack‘)
print(r.mget(‘name1‘,‘name2‘))
#append往 key里面追加内容
r.set(‘mystring‘,‘good good study study‘)
r.append(‘mystring‘,‘ day day up up‘)
print(r.get(‘mystring‘))
b,list常用操作
#删除testlist r.delete(‘testlist‘) #从列表左边插 r.lpush(‘testlist‘,1) r.lpush(‘testlist‘,2) #从列表右边插 r.rpush(‘testlist‘,3) #输出列表的内容 print(r.lrange(‘testlist‘,0,-1)) #计算列表的元素 print(r.llen(‘testlist‘)) #在列表指定位置插入值 r.linsert(‘testlist‘,‘after‘,3,4) #在testlist列表中找到下标为3的元素然后在它后面插入4 print(r.lrange(‘testlist‘,0,-1)) #更改列表中的指定下标的值 r.lset(‘testlist‘,0,10000) print(r.lrange(‘testlist‘,0,-1)) #删除列表中的元素 r.lpush(‘testlist‘,1) print(r.lrange(‘testlist‘,0,-1)) r.lrem(‘testlist‘,1) print(r.lrange(‘testlist‘,0,-1)) #删除列表中最后1个元素或者第一个元素 r.lpop(‘testlist‘) print(r.lrange(‘testlist‘,0,-1)) r.rpop(‘testlist‘) print(r.lrange(‘testlist‘,0,-1)) #根据下标获取某个值 r.lindex(‘testlist‘,0) print(r.lrange(‘testlist‘,0,-1))
c,无序集合操作(set)
#sadd 给集合添加元素 r.sadd(‘set1‘,1) r.sadd(‘set1‘,2) #scard 输出集合中元素的个数 print(r.scard(‘set1‘)) #smembers 获取字典中所有的元素 print(r.smembers(‘set1‘)) #spop 删除集合中的最后一个元素并将其返回 print(r.spop(‘set1‘)) print(r.smembers(‘set1‘)) #srem 删除集合中的元素 r.sadd(‘set1‘,4) r.srem(‘set1‘,‘4‘) print(r.smembers(‘set1‘))
d,有序集合(sorted set),对于有序集合,每一个元素有两个值
#zadd 创建添加有序集合,默人是以升序的方式显示 # r.delete(‘set2‘) r.zadd(‘set2‘,‘apple‘,13,‘banana‘,12) print(r.zrange(‘set2‘,0,-1)) #反序的形式输出 print(r.zrevrange(‘set2‘,0,-1)) #返回有序集合元素的个数 print(r.zcard(‘set2‘)) #删除有序集合的元素 print(r.zrem(‘set2‘,‘apple‘)) print(r.zrange(‘set2‘,0,-1))
e,hash操作
#hset 创建hash添加元素
r.hset(‘h1‘,‘name‘,‘dasini‘)
print(r.hget(‘h1‘,‘name‘))
#hmset 创建多个元素
r.hmset(‘h2‘,{‘name‘:‘tom‘,‘sex‘:‘male‘})
print(r.hmget(‘h2‘,‘name‘,‘sex‘))
#hlen 判断hash的个数
print(r.hlen(‘h2‘))
#hkeys 获取set对应的hash中所有的key的值
print(r.hkeys(‘h2‘))
#hvals获取set对应的hash中所有的value的值
print(r.hvals(‘h2‘))
#hdel将set对应的hash中指定key的键值对删除
print(r.hdel(‘h2‘,‘name‘))
print(r.hgetall(‘h2‘))
原文:https://www.cnblogs.com/lin1/p/9055545.html