1、无序集合
#!/usr/bin/env python# _*_ coding:utf-8 _*_import redisredisDB = redis.Redis(host='127.0.0.1',port=6379,db=0)'''sadd()#添加元素'''redisDB.sadd('myset','1')#添加元素redisDB.sadd('myset','2','3','4')#添加元素'''smembers(key)#获取所有元素sinter(key)#获取所有元素;另外功能有获取交集scard(key)#获取长度'''print redisDB.smembers('myset')#获取所有的元素print redisDB.scard('myset')#获取长度print redisDB.sinter('myset')#获取所有元素'''sdiff(key,*args)#取到第一个第一个集合中存在而其他集合中不存在的元素;差集'''redisDB.sadd('myset1','1','2')redisDB.sadd('myset2','2','3')redisDB.sadd('myset3','2','3')print redisDB.sdiff('myset1','myset2','myset3')#输出1'''sdiffstore(dest,keys,*args) dest:存储的键 keys:对比的第一个键 *args:对比的键'''redisDB.sdiffstore('store_key','myset1','myset2','myset3')#获取差集并存储print redisDB.sinter('store_key')#1 将对比后的结果存储在store_key中'''sinter(keys,*args)#获取交集'''print redisDB.sinter('myset1','myset2','myset3')#2 获取交集'''sinterstore(dest,keys,*args)#获取交集并进行存储'''redisDB.sinterstore('sinter_key','myset1',*('myset2','myset3'))print redisDB.smembers('sinter_key')#2 获取到交集并进行存储'''sunion()#获取并集sunionstore()#获取并集并进行存储'''print redisDB.sunion('myset1','myset2','myset3')redisDB.sunionstore('union_key','myset1','myset2','myset3')print redisDB.smembers('union_key')#set(['1', '3', '2'])'''sismember()#判断某一个值是否在集合中'''print redisDB.sismember('myset1','1')#true在'''smove(src, dst, value)#将src中的一个元素移动到dst中;剪切'''redisDB.smove('myset1','myset2',1)print redisDB.smembers('myset1')print redisDB.smembers('myset2')'''spop()#从集合的右侧移除元素'''redisDB.spop('myset1')'''srandmember(name,numbers)#随机获取几个元素'''print redisDB.srandmember('myset1',5)#随机获取5个元素'''srem(name,values)#删除集合中的某些值'''redisDB.srem('myset1','1','2')
2、有序集合
#!/usr/bin/env python# _*_ coding:utf-8 _*_import redisredisDB = redis.Redis(host='127.0.0.1',port=6379,db=0)'''zadd(name,*args,**kwargs) name:键 args:以元祖或者列表的形式传值 kwargs:字典 注意对于有序集合来讲每一个元素有两个值,即:值和分数,分数是用来做排序使用的。b1=1 b1是值,1是分数 下面为几种添加方式:'''redisDB.zadd('sorted_set','a1','1','a2','2')redisDB.zadd('sorted_set',*('a1','1','a2','2'))redisDB.zadd('sorted_set',**{ 'b1':'1','b2':'2'})redisDB.zadd('sorted_set',b1='1',b2='2')'''zrange(name, start, end, desc=False, withscores=False,score_cast_func=float)获取有序集合中的元素 参数解释: name:键 start:分数起始 end:分数结尾 desc:排序规则,默认按照分数从小到大排序 withscores:是否获取元素的分数,默认只获取元素的值 score_cast_func:对分数进行转换的函数,默认为float'''print redisDB.zrange('sorted_set',0,-1,withscores=True)#获取所有包括值和分数print redisDB.zrange('sorted_set',0,redisDB.zcard('sorted_set'))#获取所有'''zcard()是用来获取集合中所有的元素数目即集合的长度'''redisDB.zadd('sorted_set1','aa',1,'bb',2)print redisDB.zcard('sorted_set1')#获取集合长度'''zcount(name,main,max)#获取最小分数和最大分数之间值的数目'''redisDB.zadd('sorted_set2','aa',1,'bb',2,'cc',3,'dd',4,'ee',5)print redisDB.zcount('sorted_set2',min=1,max=2)#获取分数在1-2之间元素的个数'''zincrby()自增某一元素的值'''redisDB.zadd('sorted_set3','1',1,'2',2,'aa',3)print redisDB.zincrby('sorted_set3','1',amount=5)print redisDB.zrange('sorted_set3',0,-1,)'''zscan()获取所有的值及分数'''print redisDB.zscan('sorted_set3')'''zrank()#获取某一值的排序位置,正序zrevrank()#获取某一值的排序位置,反序'''redisDB.zadd('sorted_set4','a1',0,'a2',1,'a3',3,'a4',4,'a5',5)print redisDB.zrank('sorted_set4','a1')#0print redisDB.zrevrank('sorted_set4','a1')#4'''zscore()获取某一值的分数'''print redisDB.zscore('sorted_set4','a1')'''zrem()删除有序集合中的值'''redisDB.zadd('sorted_set5','a1',0,'a2',1,'a3',2,'a4',3,'a5',4)print redisDB.zscan('sorted_set5')#(0L, [('a1', 0.0), ('a2', 1.0), ('a3', 2.0), ('a4', 3.0), ('a5', 4.0)])redisDB.zrem('sorted_set5','a1','a2')print redisDB.zscan('sorted_set5')#(0L, [('a3', 2.0), ('a4', 3.0), ('a5', 4.0)])'''zinterstore(dest, keys, aggregate=None)#取两个集合的交集并放入到dest中'''redisDB.zadd('sorted_set6','a1',0,'a2',1)redisDB.zadd('sorted_set7','a1',0,'a2',1,'a3',2)redisDB.zinterstore('sorted_temp',('sorted_set6','sorted_set7'))print redisDB.zscan('sorted_temp')#(0L, [('a1', 0.0), ('a2', 2.0)])'''zunionstore(dest, keys, aggregate=None)#取两个集合的并集并放入到dest中'''redisDB.zunionstore('sorted_temp1',('sorted_set6','sorted_set7'))print redisDB.zscan('sorted_temp1')#(0L, [('a1', 0.0), ('a2', 2.0), ('a3', 2.0)])
3、其他操作
#!/usr/bin/env python# _*_ coding:utf-8 _*_import redisredisDB = redis.Redis(host='127.0.0.1',port=6379,db=0)'''公共操作'''redisDB.keys()#获取到所有的键redisDB.exists('mykey')#判断某个键是否存在redisDB.delete('mykey')#删除某个键redisDB.expire('mykey',5)#为某个键设置超时时间redisDB.rename('old_name','new_name')#修改键的名字redisDB.randomkey()#随机获取一个键redisDB.type('mykey')#获取某个键对应的值的类型,注意此type非python中的typeredisDB.move('mykey',db=0)#将mykey从当前库移动到其他库中'''获取长度的'''redisDB.strlen('mystr')#获取字符串长度redisDB.llen('mylist')#获取列表长度redisDB.hlen('myhash')#获取散列表长度redisDB.scard('myset')#获取集合长度redisDB.zcard('mysorted_set')#获取有序集合长度'''获取值的'''redisDB.get('mystr')#获取字符串值redisDB.lrange('mylist',0,-1)#获取列表值redisDB.lrange('mylist',0,redisDB.llen('mylist'))redisDB.hkeys('myhash')#获取散列表所有键redisDB.hvals('myhash')#获取散列表值redisDB.hgetall('myhash')#获取散列表所有redisDB.smembers('myset')#获取集合所有成员redisDB.zrange('mysorted_set',0,-1,withscores=True)#获取有序集合所有成员redisDB.zscan('mysorted_set')redisDB.zrange('mysorted_set',0,redisDB.zcard('mysorted_set'))
参考博客:
http://www.cnblogs.com/xuchunlin/p/7097255.html
https://www.cnblogs.com/melonjiang/p/5342505.html