python-redis之数据类型二
1、无序集合
#!/usr/bin/env python # _*_ coding:utf-8 _*_ import redis redisDB = 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 redis redisDB = 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')#0 print 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 redis redisDB = 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中的type redisDB.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
刷初步设计被拆包时间戳