广州个人网站制作公司,急招钟点工4小时220元,晋江网站制作,网站建设合同制人员招聘3、List 操作
redis中的List在在内存中按照一个name对应一个List来存储
lpush(name,values)
# 在name对应的list中添加元素#xff0c;每个新的元素都添加到列表的最左边
r.lpush(list_name,2)
r.lpush(list_name,3,4,5)#保存在列表中的顺序为5每个新的元素都添加到列表的最左边
r.lpush(list_name,2)
r.lpush(list_name,3,4,5)#保存在列表中的顺序为5432
rpush(name,values)
#同lpush但每个新的元素都添加到列表的最右边
lpushx(name,value)
#在name对应的list中添加元素只有name已经存在时值添加到列表的最左边
rpushx(name,value)
#在name对应的list中添加元素只有name已经存在时值添加到列表的最右边
llen(name)
# name对应的list元素的个数
print(r.llen(list_name))linsert(name, where, refvalue, value))# 在name对应的列表的某一个值前或后插入一个新值
r.linsert(list_name,BEFORE,2,SS)#在列表内找到第一个元素2在它前面插入SS参数name: redis的namewhere: BEFORE前或AFTER后refvalue: 列表内的值value: 要插入的数据r.lset(name, index, value)#对list中的某一个索引位置重新赋值
r.lset(list_name,0,bbb)r.lrem(name, value, num)#删除name对应的list中的指定值
r.lrem(list_name,SS,num0) 参数name: redis的namevalue: 要删除的值num: num0 删除列表中所有的指定值num2 从前到后删除2个num-2 从后向前删除2个lpop(name)#移除列表的左侧第一个元素返回值则是第一个元素
print(r.lpop(list_name))lindex(name, index)#根据索引获取列表内元素
print(r.lindex(list_name,1))lrange(name, start, end)#分片获取元素
print(r.lrange(list_name,0,-1))ltrim(name, start, end)#移除列表内没有在该索引之内的值
r.ltrim(list_name,0,2)rpoplpush(src, dst)# 从一个列表取出最右边的元素同时将其添加至另一个列表的最左边
#src 要取数据的列表
#dst 要添加数据的列表brpoplpush(src, dst, timeout0)#同rpoplpush多了个timeout, timeout取数据的列表没元素后的阻塞时间0为一直阻塞
r.brpoplpush(list_name,list_name1,timeout0)blpop(keys, timeout)#将多个列表排列,按照从左到右去移除各个列表内的元素
r.lpush(list_name,3,4,5)
r.lpush(list_name1,3,4,5)while True:print(r.blpop([list_name,list_name1],timeout0))print(r.lrange(list_name,0,-1),r.lrange(list_name1,0,-1))keys: redis的name的集合timeout: 超时时间获取完所有列表的元素之后阻塞等待列表内有数据的时间秒, 0 表示永远阻塞r.brpop(keys, timeout)#同blpop将多个列表排列,按照从右像左去移除各个列表内的元素
4、Set 操作
Set集合就是不允许重复的列表
sadd(name,values)
#给name对应的集合中添加元素
r.sadd(set_name,aa)
r.sadd(set_name,aa,bb)
smembers(name)
#获取name对应的集合的所有成员
scard(name)
#获取name对应的集合中的元素个数
r.scard(set_name)
sdiff(keys, *args)
#在第一个name对应的集合中且不在其他name对应的集合的元素集合
r.sadd(set_name,aa,bb)
r.sadd(set_name1,bb,cc)
r.sadd(set_name2,bb,cc,dd)print(r.sdiff(set_name,set_name1,set_name2))#输出:aa
sdiffstore(dest, keys, *args)
#相当于把sdiff获取的值加入到dest对应的集合中
sinter(keys, *args)
# 获取多个name对应集合的并集
r.sadd(set_name,aa,bb)
r.sadd(set_name1,bb,cc)
r.sadd(set_name2,bb,cc,dd)print(r.sinter(set_name,set_name1,set_name2))#输出:bb
sinterstore(dest, keys, *args)
#获取多个name对应集合的并集再讲其加入到dest对应的集合中
sismember(name, value)
#检查value是否是name对应的集合内的元素
smove(src, dst, value)
#将某个元素从一个集合中移动到另外一个集合
spop(name)
#从集合的右侧移除一个元素并将其返回
srandmember(name, numbers)
# 从name对应的集合中随机获取numbers个元素 print(r.srandmember(set_name2,2))
srem(name, values)
#删除name对应的集合中的某些值 print(r.srem(set_name2,bb,dd))
sunion(keys, *args)
#获取多个name对应的集合的并集 r.sunion(set_name,set_name1,set_name2)
sunionstore(dest,keys, *args)
#获取多个name对应的集合的并集并将结果保存到dest对应的集合中
有序集合
在集合的基础上为每元素排序元素的排序需要根据另外一个值来进行比较所以对于有序集合每一个元素有两个值即值和分数分数专门用来做排序。
zadd(name, *args, **kwargs)
# 在name对应的有序集合中添加元素 r.zadd(zset_name, a1, 6, a2, 2,a3,5) #或 r.zadd(zset_name1, b110, b25)
zcard(name)
#获取有序集合内元素的数量
zcount(name, min, max)
#获取有序集合中分数在[min,max]之间的个数 print(r.zcount(zset_name,1,5))
zincrby(name, value, amount)
#自增有序集合内value对应的分数 r.zincrby(zset_name,a1,amount2)#自增zset_name对应的有序集合里a1对应的分数
zrange( name, start, end, descFalse, withscoresFalse, score_cast_funcfloat)
# 按照索引范围获取name对应的有序集合的元素
aar.zrange(zset_name,0,1,descFalse,withscoresTrue,score_cast_funcint)
print(aa)
参数name redis的namestart 有序集合索引起始位置end 有序集合索引结束位置desc 排序规则默认按照分数从小到大排序withscores 是否获取元素的分数默认只获取元素的值score_cast_func 对分数进行数据转换的函数zrevrange(name, start, end, withscoresFalse, score_cast_funcfloat)#同zrange集合是从大到小排序的zrank(name, value)、zrevrank(name, value)#获取value值在name对应的有序集合中的排行位置从0开始
print(r.zrank(zset_name, a2))print(r.zrevrank(zset_name, a2))#从大到小排序zscore(name, value)#获取name对应有序集合中 value 对应的分数
print(r.zscore(zset_name,a1))zrem(name, values)#删除name对应的有序集合中值是values的成员
r.zrem(zset_name,a1,a2)zremrangebyrank(name, min, max)#根据排行范围删除zremrangebyscore(name, min, max)#根据分数范围删除zinterstore(dest, keys, aggregateNone)r.zadd(zset_name, a1, 6, a2, 2,a3,5)
r.zadd(zset_name1, a17,b110, b25)# 获取两个有序集合的交集并放入dest集合如果遇到相同值不同分数则按照aggregate进行操作
# aggregate的值为: SUM MIN MAX
r.zinterstore(zset_name2,(zset_name1,zset_name),aggregateMAX)
print(r.zscan(zset_name2))zunionstore(dest, keys, aggregateNone)#获取两个有序集合的并集并放入dest集合其他同zinterstore其他常用操作delete(*names)#根据name删除redis中的任意数据类型exists(name)#检测redis的name是否存在keys(pattern*)#根据* 等通配符匹配获取redis的nameexpire(name ,time)# 为某个name设置超时时间rename(src, dst)# 重命名move(name, db))# 将redis的某个值移动到指定的db下randomkey()#随机获取一个redis的name不删除type(name)# 获取name对应值的类型