Redis set集合
Set操作、Set集合就是不允许重复的列表
(无序集合)
- sadd(name,values)
- # name对应的集合中添加元素
- scard(name)
- # 获取name对应的集合中元素个数
- sdiff(keys, *args)
- 在第一个name对应的集合中且不在其他name对应的集合的元素集合
- sdiffstore(dest, keys, *args)
- # 获取第一个name对应的集合中且不在其他name对应的集合,再将其新加入到dest对应的集合中
- sinter(keys, *args)
- # 获取多一个name对应集合的并集
- sinterstore(dest, keys, *args)
- # 获取多一个name对应集合的并集,再讲其加入到dest对应的集合中
- sismember(name, value)
- # 检查value是否是name对应的集合的成员
- smembers(name)
- # 获取name对应的集合的所有成员
- smove(src, dst, value)
- # 将某个成员从一个集合中移动到另外一个集合
- spop(name)
- # 从集合的右侧(尾部)移除一个成员,并将其返回
- srandmember(name, numbers)
- # 从name对应的集合中随机获取 numbers 个元素
- srem(name, values)
- # 在name对应的集合中删除某些值
- sunion(keys, *args)
- # 获取多一个name对应的集合的并集
- sunionstore(dest,keys, *args)
- # 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中
- sscan(name, cursor=0, match=None, count=None)
- sscan_iter(name, match=None, count=None)
- # 同字符串的操作,用于增量迭代分批获取元素,避免内存消耗太大
(有序集合)
在集合的基础上,为每元素排序;元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。
- zadd(name, *args, **kwargs)
- # 在name对应的有序集合中添加元素
# 如:
# zadd('zz', 'n1', , 'n2', )
# 或
# zadd('zz', n1=, n2=)- zcard(name)
- # 获取name对应的有序集合元素的数量
- zcount(name, min, max)
- # 获取name对应的有序集合中分数 在 [min,max] 之间的个数
- zincrby(name, value, amount)
- # 自增name对应的有序集合的 name 对应的分数
- r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float)
- # 按照索引范围获取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)
- # 获取某个值在 name对应的有序集合中的排行(从 0 开始)
# 更多:
# zrevrank(name, value),从大到小排序- zrem(name, values)
- # 删除name对应的有序集合中值是values的成员
# 如:zrem('zz', ['s1', 's2'])
- zremrangebyrank(name, min, max)
- # 根据排行范围删除
- zremrangebyscore(name, min, max)
- # 根据分数范围删除
- zscore(name, value)
- # 获取name对应有序集合中 value 对应的分数
- zinterstore(dest, keys, aggregate=None)
- # 获取两个有序集合的交集,如果遇到相同值不同分数,则按照aggregate进行操作
# aggregate的值为: SUM MIN MAX
- zunionstore(dest, keys, aggregate=None)
- # 获取两个有序集合的并集,如果遇到相同值不同分数,则按照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)
- # 同字符串相似,相较于字符串新增score_cast_func,用来对分数进行操作
Redis set集合的更多相关文章
- Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...
- redis 有序集合(zset)函数
redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...
- redis学习-集合set常用命令
redis学习-集合set常用命令 1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...
- Redis有序集合
Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...
- Redis 操作集合数据
Redis 操作集合数据: > sadd set1 Tom // sadd 用于往集合中添加元素 (integer) > sadd set1 John (integer) > sad ...
- Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- redis有序集合的使用
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...
- redis有序集合数据类型---sortedset
一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...
- 数据结构与算法简记--redis有序集合实现-跳跃表
跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...
- 基于redis有序集合,实现简单的延时任务
基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...
随机推荐
- Flink中Idle停滞流机制(源码分析)
前几天在社区群上,有人问了一个问题 既然上游最小水印会决定窗口触发,那如果我上游其中一条流突然没有了数据,我的窗口还会继续触发吗? 看到这个问题,我蒙了???? 对哈,因为我是选择上游所有流中水印最小 ...
- java高并发系列 - 第8天:线程组
线程组 我们可以把线程归属到某个线程组中,线程组可以包含多个线程以及线程组,线程和线程组组成了父子关系,是个树形结构,如下图: 使用线程组可以方便管理线程,线程组提供了一些方法方便方便我们管理线程. ...
- C#将Excel数据表导入SQL数据库的两种方法
最近用写个winform程序想用excel 文件导入数据库中,网上寻求办法,找到了这个经过尝试可以使用. 方法一: 实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环 ...
- fastjson对于yyyy-MM-dd HH:mm格式的反序列化问题
原创GrayHJX 发布于2017-03-14 22:56:33 阅读数 6851 收藏 展开 问题:最近在工作中遇到这么一个问题:有个实体类,它有个date类型的属性,当在这个属性加上fastjs ...
- GO与PHP的AES交互,key长度问题
今天在使用go与php的AES加解密交互中,一直有个问题那就是在go中加密后,在php端始终都是无法解密,经过排查最后发现是加密key长度引起的问题, 这里简单记录下. go的AES使用的是第三方的库 ...
- 【OOM】解决思路
一.什么是OOM? OOM就是outOfMemory,内存溢出!可能是每一个java人员都能遇到的问题!原因是堆中有太多的存活对象(GC-ROOT可达),占满了堆空间. 二.怎么解决? 1.拿到内存溢 ...
- sed文本处理
1.基本概述 sed是一个流编辑器, 非交互式的编辑器,它一次处理一行内容. 处理时,把当前处理的行存储在临时缓冲区中,称* 为"模式空间"(pattern space) 接着用 ...
- SpringMVC入门 -- 参数绑定
一.REST与RESTful 1.简介 (1)REST(Representational State Transfer):表现层状态转移,一种软件架构风格,不是标准.REST描述的是在网络中clien ...
- VUE组内培训
最近去参加了一个外部VUE的周末培训,加上自己比较感兴趣所以对这项很热的前端框架做了点学习,顺便给组内同事做个简单的分享,希望下次有项目可以使用上- VUE的语法教程网上很多我就不一一列举,截图放一下 ...
- QML::基本属性类型
QML基本属性类型