Redis四(Set操作)

1、Set操作

  Set集合就是不允许重复的列表

集合操作(无序)

sadd(name,values)


1

# name对应的集合中添加元素

scard(name)


1

获取name对应的集合中元素个数

sdiff(keys, *args)


1

在第一个name对应的集合中且不在其他name对应的集合的元素集合

sdiffstore(dest, keys, *args)


1

# 获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中

sinter(keys, *args)


1

# 获取多一个name对应集合的并集

sinterstore(dest, keys, *args)


1

# 获取多一个name对应集合的并集,再讲其加入到dest对应的集合中

sismember(name, value)


1

# 检查value是否是name对应的集合的成员

smembers(name)


1

# 获取name对应的集合的所有成员

smove(src, dst, value)


1

# 将某个成员从一个集合中移动到另外一个集合

spop(name)


1

# 从集合的右侧(尾部)移除一个成员,并将其返回

srandmember(name, numbers)


1

# 从name对应的集合中随机获取 numbers 个元素

srem(name, values)


1

# 在name对应的集合中删除某些值

sunion(keys, *args)


1

# 获取多一个name对应的集合的并集

sunionstore(dest,keys, *args)


1

# 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中

sscan(name, cursor=0, match=None, count=None)
sscan_iter(name, match=None, count=None)


1

# 同字符串的操作,用于增量迭代分批获取元素,避免内存消耗太大

有序集合

  在集合的基础上,为每元素排序;元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。

zadd(name, *args, **kwargs)


1

2

3

4

5

# 在name对应的有序集合中添加元素

# 如:

     # zadd(‘zz‘, ‘n1‘, 1, ‘n2‘, 2)

     # 或

     # zadd(‘zz‘, n1=11, n2=22)

zcard(name)


1

# 获取name对应的有序集合元素的数量

zcount(name, min, max)


1

# 获取name对应的有序集合中分数 在 [min,max] 之间的个数

zincrby(name, value, amount)


1

# 自增name对应的有序集合的 name 对应的分数

r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# 按照索引范围获取name对应的有序集合的元素

# 参数:

    # name,redis的name

    # start,有序集合索引起始位置(非分数)

    # end,有序集合索引结束位置(非分数)

    # desc,排序规则,默认按照分数从小到大排序

    # withscores,是否获取元素的分数,默认只获取元素的值

    # score_cast_func,对分数进行数据转换的函数

# 更多:

    # 从大到小排序

    # zrevrange(name, start, end, withscores=False, score_cast_func=float)

    # 按照分数范围获取name对应的有序集合的元素

    # zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float)

    # 从大到小排序

    # zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float)

zrank(name, value)


1

2

3

4

# 获取某个值在 name对应的有序集合中的排行(从 0 开始)

# 更多:

    # zrevrank(name, value),从大到小排序

zrangebylex(name, min, max, start=None, num=None)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# 当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的 值 (lexicographical ordering)来进行排序,而这个命令则可以返回给定的有序集合键 key 中, 元素的值介于 min 和 max 之间的成员

# 对集合中的每个成员进行逐个字节的对比(byte-by-byte compare), 并按照从低到高的顺序, 返回排序后的集合成员。 如果两个字符串有一部分内容是相同的话, 那么命令会认为较长的字符串比较短的字符串要大

# 参数:

    # name,redis的name

    # min,左区间(值)。 + 表示正无限; - 表示负无限; ( 表示开区间; [ 则表示闭区间

    # min,右区间(值)

    # start,对结果进行分片处理,索引位置

    # num,对结果进行分片处理,索引后面的num个元素

# 如:

    # ZADD myzset 0 aa 0 ba 0 ca 0 da 0 ea 0 fa 0 ga

    # r.zrangebylex(‘myzset‘, "-", "[ca") 结果为:[‘aa‘, ‘ba‘, ‘ca‘]

# 更多:

    # 从大到小排序

    # zrevrangebylex(name, max, min, start=None, num=None)

zrem(name, values)


1

2

3

# 删除name对应的有序集合中值是values的成员

# 如:zrem(‘zz‘, [‘s1‘, ‘s2‘])

zremrangebyrank(name, min, max)


1

# 根据排行范围删除

zremrangebyscore(name, min, max)


1

# 根据分数范围删除

zremrangebylex(name, min, max)


1

# 根据值返回删除

zscore(name, value)


1

# 获取name对应有序集合中 value 对应的分数

zinterstore(dest, keys, aggregate=None)


1

2

# 获取两个有序集合的交集,如果遇到相同值不同分数,则按照aggregate进行操作

# aggregate的值为:  SUM  MIN  MAX

zunionstore(dest, keys, aggregate=None)


1

2

# 获取两个有序集合的并集,如果遇到相同值不同分数,则按照aggregate进行操作

# aggregate的值为:  SUM  MIN  MAX

zscan(name, cursor=0, match=None, count=None, score_cast_func=float)
zscan_iter(name, match=None, count=None,score_cast_func=float)


1

# 同字符串相似,相较于字符串新增score_cast_func,用来对分数进行操作

更多参见:https://github.com/andymccurdy/redis-py/

http://doc.redisfans.com/

时间: 2024-11-07 00:27:31

Redis四(Set操作)的相关文章

Redis 四:存储类型之有序集合

有序集合似乎更大的操作是由于加了一个叫做“分子”的东西 事实上就好像普通的数据,只是为这个数据加了一个纯数字的标识, 通过操作这些标识来得到我们想要的数据! 分子可以是整形,也可以是双精度浮点型: ==================================================== 1.zadd num 100 a 80 b 70 c 添加一个叫num的有序集合,a元素为100分,b元素为80分.... 2.zscore num a 获取num集合中元素名为a的分子 ====

Redis 四:存储类型之散列类型

1.散列类型表达方式简介: =========================================== 键 字段 值 =========================================== 前轮 --->富士康 后轮 --->苹果 宝马: 挡风玻璃 --->加多宝 座椅 --->王老吉 方向盘 --->恒大冰泉 =========================================== 散列类型更好的作用于同一个对象,不同属性,对应不同

Redis 四:存储类型之无序集合

1.sadd num a b c 向num集合中添加abc三个元素 2.srem num b 从num集合中删除b元素 3.smembers num 获取num集合中所有的元素 4.sismember num c 判断c是否存在num集合中 ============================= 5.运算 sadd num a b c sadd num2 a b c d 差集(计算左边比右边多出来的那部分): sdiff num num 2 返回空 sdiff num2 num 返回d 交集

转 四种操作xml的方式(SAX, DOM, JDOM, DOM4J)比较

四种操作xml的方式(SAX, DOM, JDOM, DOM4J)比较 (2010-10-29 15:31:28) 转载▼  http://blog.sina.com.cn/s/blog_6458bf440100mgjs.html 标签: 杂谈 分类: JAVA技术 1 介绍 引子:XML自从出现以来,以其可扩展性.自描述性.自相容性等优点,被誉为信息标准化过程的有力工具,基于XML的标准将成为以后信息标准的主流.伴随而生的是针对XML的操作技术,“名人总的有人去解析”吗!下面是愚人对目前主要的

AJAX的来龙去脉(由来)-如果被封装出来的--ajax发送异步请求(四步操作)

<黑马程序员_超全面的JavaWeb视频教程vedio\JavaWeb视频教程_day23_ajax> \JavaWeb视频教程_day23_ajax\day23ajax_avi\14.打包ajax生成小工具.avi;  有介绍: 个人理解:就是封装了 XMLHttpRequest 的请求方法:演变而成我们常用的 ajax: =====原始的请求方式: ajax发送异步请求(四步操作) 1. 第一步(得到XMLHttpRequest) * ajax其实只需要学习一个对象:XMLHttpRequ

redis的hash操作在集中式session中的应用

在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共享的两大因素: 1. session必须有ha机制,集群中部分服务器发生故障时,保证session不丢失. 2. session的生命周期管理. 3. session的大小未知,整体的序列化和反序列化成本比较高. redis的解决方式 1. redis具有持久化功能,且sentiment具有ha功效

Redis 四:存储类型之列表类型

1.lpush num 0 1 2 3 4 5 6 7 8 9 10 依次从左边推入0 - 10 2.rpush num 0 1 2 3 4 5 6 7 8 9 10 依次从右边推入0 - 10 3.lrnage num 0 -1 显示num列表中所有的数据 结果:10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10 4.lpop num 从左边删除并弹出一个元素 5.rpop num 从右边删除并弹出一个元素 6.llen num 获取元素个数 7.lra

Python笔记四之操作文件

一.字符串方法补充(join.split) join方法: # join方法,连接字符串 1.把一个list变成了字符串 2.通过某个字符把list里面的元素连接起来 # 3.只要是可以循环的都可以连接起来 l=['a','b','c'] sl=str(l) #sl="['a','b','c']" str()把对象转换成一个字符串,整个list变成一个字符串,包含中括号 print(l,type(l)) print(sl,type(sl)) res=''.join(l)#以空连接起来,

Redis的相关操作

参考文献:http://www.runoob.com/redis/redis-transactions.html redis下载(Windows安装)D:\downloads\redis>redis-server.exe redis.windows.conf(启动服务)打开另一个cmd终端:D:\downloads\redis>redis-cli(打开本地连接)D:\downloads\redis>redis-cli.exe -h 127.0.0.1 -p 6379(打开远程连接,然后打

RESTful Web 服务四种操作POST/DELETE/PUT/GET

目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现.例如,Amazon.com提供接近REST风格的Web服务进行图书查找:雅虎提供的Web服务也是REST风格的. 应该是,做WEB服务,都必须掌握REST!! Rest模式有四种操作: POST /url 创建 DELETE /url/xxx 删除 PUT /url/xxx 更新或创建 GET /url/xxx 查看 GET