1、字符串操作
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import redis redisDB = redis.Redis(host='127.0.0.1',port=6379,db=0) ''' 设置值 set(name, value, ex=None, px=None, nx=False, xx=False) 参数解释: name:键 value:值 ex:设置过期时间(单位秒) px:设置过期时间(单位毫秒) nx:默认为false即无论name是否存在都执行 xx:默认为false即无论name是否存在都执行 注意: 当键不存在时会创建键值对,如果键存在时会覆盖旧的值 批量设置值: mset(key1='value1',key2='value2') mset({'key1':'value1','key2':'value2'}) ''' print redisDB.set('mystr1','hello')#设置成功返回True print redisDB.set('mystr2','hello 222')#设置成功返回True,相同key会覆盖掉以前的 print redisDB.setex('mystr3','hello 222',5)#设置三秒后失效,返回true设置成功,设置值并设置失效时间 print redisDB.psetex('mystr4',5,'hello 222')#设置5毫秒后失效,返回true设置成功,设置值并设置失效时间 print redisDB.mset(key1='value1',key2='value2')#批量设置 print redisDB.mset({'key1':'value1','key2':'value2'})#批量设置 ''' 获取值: get()#获取单个值 mget()#批量获取值 ''' print redisDB.get('key1') print redisDB.mget(['key1','key2']) ''' 设置新值,获取旧值 getset() ''' print redisDB.getset('key1','newvalue')#取到旧值 print redisDB.getset('key5','newvalue')#取不到,设置新值 ''' 按照切片进行获取 getrange() ''' redisDB.set('mystr','111111111111') print redisDB.getrange('mystr',0,5)#获取索引0-5 print redisDB.getrange('mystr',0,30)#如果最大值超过字符串长度则获取整个字符串 print redisDB.getrange('mystr',30,50)#如果最小值大于字符串长度,则获取为空 ''' 获取字符串的长度 strlen() ''' print redisDB.strlen('mystr')#有则返回字符串长度 print redisDB.strlen('none')#没有键,就返回0 ''' 编辑字符串的内容 setrange() ''' print redisDB.set('mystr','111') print redisDB.setrange('mystr',1,'2')#范围之内替换 print redisDB.get('mystr')#121 print redisDB.setrange('mystr',5,'666')#超出返回添加 print redisDB.get('mystr')#121666 print redisDB.setrange('mystr',1,'666666')#从第二个开始替换 print redisDB.get('mystr')#1666666 print redisDB.setrange('none',2,'6666')#没有键,以666为值进行设置 print redisDB.get('none')# 66666 ''' 给字符串进行追加 append() ''' print redisDB.set('mystr','000') print redisDB.get('mystr') print redisDB.append('mystr','111')#返回字符串总长度,并从后进行追加 print redisDB.get('mystr') ''' 对字符串为数字的操作 incr(name,amount) name:键 amount:步长 设置自增 decr(name,amount) name:键 amount:步长 设置自减 incrbyfloat(name,amount) 可以设置自增为浮点的数 ''' print redisDB.set('mynum',5) print redisDB.get('mynum')#5 print redisDB.incr('mynum',3)#8,返回自增后的结果 print redisDB.get('mynum')#8 print redisDB.decr('mynum',5)#3 返回自减后的结果 print redisDB.get('mynum')#3 print redisDB.incrbyfloat('mynum',0.5)#3.5 返回自加后的结果 print redisDB.incrbyfloat('mynum',-0.5)#3.0 返回自减后的结果 print redisDB.get('mynum')#3.5
2、列表操作
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import redis redisDB = redis.Redis(host='127.0.0.1',port=6379,db=0) ''' lpush()往左边插入,相当于py的列表insert(0,item) ''' redisDB.lpush('mylist',3) redisDB.lpush('mylist',4) redisDB.lpush('mylist',5,6,7) print redisDB.lrange('mylist',0,-1)#['7', '6', '5', '4', '3'] ''' rpush()往右边添加,相当于py的列表append(item) ''' redisDB.rpush('mylist',1) redisDB.rpush('mylist',2) redisDB.rpush('mylist',3,4,5) print redisDB.lrange('mylist',0,-1)#['1', '2', '3', '4', '5'] ''' 只有当键存在时才进行插入或者追加操作,否则返回0 rpushx() lpushx() ''' redisDB.rpushx('mylist',8)#只有在mylist存在的时候才向右进行追加,没有则返回0 redisDB.lpushx('mylist',0)#只有在mylist存在的时候才向左进行添加,没有则返回0 print redisDB.lrange('mylist',0,-1) ''' llen()获取列表的长度 lrang(key,start,end)#按照起始点来进行切片 lindex()#按照索引取值 ''' print redisDB.llen('mylist') print redisDB.lrange('mylist',0,redisDB.llen('mylist'))#获取列表所有元素 print redisDB.lrange('mylist',0,-1)#获取列表所有元素 print redisDB.lindex('mylist',5)#按照索引取值 ''' lpop()#从左边进行pop,列表减少 rpop()#从右边进行pop,列表减少一个元素 ''' print redisDB.lpop('mylist')#从左边进行pop print redisDB.rpop('mylist')#从右边进行pop print redisDB.lrange('mylist',0,-1) ''' linsert(name, where, refvalue, value): name:键 where:before 找到要插入的值(第一个)在值之前插入,after找到要插入的值(第一个)在值之后插入 refvalue:列表中的值 value:要插入的值 ''' redisDB.linsert('mylist','AFTER',3,'test')#找到第一个为3的元素,在此元素之后插入元素'test' ''' lset(name,index,value)#按照索引对列表中的元素重新赋值 ''' redisDB.lset('mylist',5,'new_val')#重新赋值 ''' lrem(name,value,num) value:值 num=0#删除所有的value num=1#从前往后只删除第一个 num=-1#从后往前只删除第一个 ''' redisDB.lrem('mylist',5,num=0) ''' ltrim(name,start,end)#删除在该索引范围之外的值 ''' redisDB.ltrim('mylist',3,5)#只保留索引在3,5之间的数据 ''' rpoplpush(src, dst)#从一个列表中取出最右边添加到另外一个列表的最左边 ''' redisDB.rpush('list1',1,2,3) redisDB.rpush('list2',1,2,3) redisDB.rpoplpush('list1','list2') print redisDB.lrange('list2',0,-1) ''' blpop(keys, timeout=0)#表示从左边开始进行pop brpop(keys, timeout=0)#表示从右边开始pop ''' redisDB.lpush('list1',1,2,3) redisDB.lpush('list2',1,2,3) while True: print redisDB.blpop(['list1','list2'],timeout=0) print redisDB.lrange('list1',0,-1),redisDB.lrange('list2',0,-1)
3、hash操作
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import redis redisDB = redis.Redis(host='127.0.0.1',port=6379,db=0) redisDB.hset('myhash','k1','v1')#创建一个hash字典,向字典中添加一组键值对 print redisDB.hget('myhash','k1')#从hash字典中获取一个值 redisDB.hset('myhash','k1','v')#如果在myhash中有k1就更新k1,否则重新添加键值对 print redisDB.hgetall('myhash')#获取myhash中所有的键值对 redisDB.hmset('myhash',{'k1':'v1','k2':'v2'})#一次添加多个键值对 print redisDB.hmget('myhash',['k1','k2'])#一次获取多个键对应的值 print redisDB.hlen('myhash')#获取hash的长度 print redisDB.hkeys('myhash')#获取hash中的所有key print redisDB.hvals('myhash')#获取has中的所有value print redisDB.hexists('myhash','key')#判断key是否在myhash中 redisDB.hdel('myhash','k1')#删除指定的键值对 redisDB.hincrby('myhash','mynum',amount=1)#将字典中的元素自增 redisDB.hincrbyfloat('myhash','mynum',amount=1.0)#将字典中的元素自增