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