首页 > 数据库 >redis:set与zset

redis:set与zset

时间:2023-08-17 16:13:47浏览次数:40  
标签:set zset min max 元素 redis K2 K1 排序

学习自:Redis 的五种基本数据类型_redis的五种数据类型_喵先森爱吃鱼的博客-CSDN博客

Set

集合,存放一系列无重复元素

 

常用命令

命令

用法

说明

scard

scard K K中元素个数

sadd

sadd K V1 V2 V3 V4 往K中添加数据

srem

srem K V 从K中移除数据
sismember sismember K V 判断V是否在K中
smembers smembers K 返回K中所有的V
srandmember srandmember K n

随机返回n个K中的元素。

当n超过K的大小时,返回全部元素。

n可为负数,此时效果同绝对值

spop spop K n 随机删除n个K中的元素
smove smove K1 K2 V 把K1中的V移动至K2中
sdiff sdiff K1 K2

返回K1和K2的差集(并非补集)

结果与K的顺序有关

sdiffstore sdiffstore K3 K1 K2 求差集,并把结果存入K3
sinter sinter K1 K2 求交集
sinterstore sinterstore K3 K1 K2 求交集,并把结果存入K3
sunion sunion K1 K2 求并集
sunionstore sunionstore K3 K1 K2 求并集,并将结果存入K3

scard:K中元素个数

sadd:往K中加元素

srem:移除K中的某个元素

 

sismember:判断V是不是K的元素

smembers:返回K中全部的V

srandmember:随机取n个元素

spop:随机删除n个元素

smove:把一个K中的V移动到另一个K中

sdiff、sdiffstore:求差集

 

sinter、sinterstore:求交集

 

 

SUNION、SUNIONSTORE:求并集

 

zset或SortedSet

给数据加了Score的Set,可以根据Score对set中的数据进行排序。

底层用一个跳表(SkipList)+hash表实现。

特性

  • 可排序
  • 元素不重复
  • 查询速度快

常用命令

命令

用法(下文S代表V的score)

说明

zcard

 zcard K K中元素数

zadd

zadd K S V 往K中添加V(分数S)

zrem

zrem K V

删除K中的V

zscore

zscore K V

获取K中某个V的S

zrank

zrank K V

获取K中某个V的排名

zcount

zcount K min max 统计S在[min,max]内的元素个数

zincrby

zincrby K n V 让K中某个V的S自增n
zrange zrange K min max

数据排序,根据S从小到大

如果要同时显示S,则要在最后加withscores

zrevrange zrevrange K min max

数据排序,根据S从大到小

zrangebyscore zrangebyscire K min max

安装S排序后,获取S范围[min,max]内的V

zdiff zXXX n K1 K2

求差集

求交集 n为求集合的K的个数

求并集

zinter
zunion
以上所有排名都是升序,如果要降序,则在命令的z后加上rev即可,如上文的zrange和zrevrange

zcard:元素个数

zadd:增加元素并完成排序

zrem:弹出指定元素v

 

zscore:查询K中V的S

 zrange:查询指定下标范围的V(按照分数排序得到的下表)

 zrevrange:与zrange类似,只是这里是降序

zcount:统计K中S在某个区间内的V

默认是[ min , max ],如果要排除某个区间边缘,则加一个(

zrangebyscore:统计S在指定区间内的V,加上withscores可以同时返回score

zrank:返回K中某个V的排名

zrevrank:与zrank相同,但这里排序是逆序(从大到小)

zincrby:让K中指定的V的S加3

 zinter、zinterstore:求交集

zlexcount:计算成员间的成员数量

zrangebylex:返回指定区间内的成员,按S正序排序

 

标签:set,zset,min,max,元素,redis,K2,K1,排序
From: https://www.cnblogs.com/ShineLeBlog/p/17637900.html

相关文章

  • ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo
    问题描述想要在linux系统里面使用mysql时,出现了这样的报错信息问题解决mysql>setglobalvalidate_password_policy=LOW;mysql>setglobalvalidate_password_length=9;使用这两个命令,将密码的限制进行修改,然后执行修改密码的命令:ALTERUSERUSER()IDENTIFIEDBY'wing......
  • redis:List
    List与Java中的LinkedList类似,可以看做一个双向链表,同时支持正反向检索。特征:有序元素可重复增删速度快查询速度一般常用命令命令用法说明lpushrpushlpush/rpushKV1V2V3往K的左/右插入Vlpoprpoplpop/rpopK从K的左/右移除一个Vllenl......
  • redis:Hash
    Hash字典数据,和python中的dict一个数据样式:虽然写法是这样,但是在存储上,并不是把{}当做一个整体,而是hash内部的每个K-V都单独存储,这时候称为F-V对更合适,因为一个K真正对应的是{...}。 常用命令在Hash中,K为{...}的Key,V是{...}的整体,{...}中的键值对写为FIELD-VALUE命令......
  • redis:string类型
    学习自:Redis的五种数据类型及其底层原理_redis的五种数据类型_ZJE_ANDY的博客-CSDN博客Redis的五种基本数据类型_redis的五种数据类型_喵先森爱吃鱼的博客-CSDN博客Redis是K-V结构的数据库。Redis有5种常用数据类型(这里的数据类型,都是针对K-V对中的V的类型):StringListSet......
  • Cache Manager和Redis的不同
    CacheManager和Redis是两种不同的缓存解决方案,它们有以下区别和优劣势:数据持久性:Redis是一个基于内存的数据库,可以将数据持久化到磁盘,因此在断电或重启后,数据可以恢复。而CacheManager通常是一个内存中的缓存,不具备数据持久性,断电或重启后数据会丢失。数据类型和功能:Redis......
  • 15种实时uv实现方案系列(附源码)之一:Flink基于set实时uv统计
    UVStatMultiPlans(GitHub)项目持续收集各种高性能实时uv实现方案并对各种实现方案的优缺点进行对比分析!需求描述统计每分钟用户每个页面的uv访问量。Kafka数据格式{"userId":"c61b801e-22e7-4238-8f67-90968a40f2a7","page":"page_1","behaviorTime":1692247408129}{"userId......
  • Kubernetes守护进程集 DaemonSet
    守护进程集DaemonSet守护进程集也有副本数概念,但是副本数概念并不是通过配置清单的方式人为去定义的,他是靠你当前集群的节点个数,比如我当前集群之前安装集群安装的网络插件calico[root@k8s-master1deployment]#kubectlgetpods-nkube-systemNAME......
  • SSO单点登录(SpringSecurity OAuth2.0 redis mysql jwt)
    SSO单点登录什么是单点登录SSO(SingleSignOn)在多系统架构中,用户只需要一次登录就可以无需再次登录(比如你在打开淘宝之后点击里边的天猫)在以前我们的单系统中,用户如果登录多个服务需要多次登录,实现单点登录之后,可以实现一次登录,全部登录!一次注销,全部注销原理图用户......
  • Set A Light 3D Studio Mac三维模拟影棚布光软件
    SetALight3DStudio是一款全新的专业三维模拟影棚灯光布光软件,支持在Mac平台上制作虚拟摄影棚,能够快速制作出真实影棚布光效果,可以使用专业的灯光器材和道具。软件功能强大,操作简单,是一款功能强大的专业三维模拟影棚灯光软件。SetALight3DStudioMac版是一个全新的专业三维模......
  • Redis 可以用作关系数据库吗?
    让我们从问题“你如何使用Redis?”开始。我相信大多数人将其用作服务的缓存。但是,我希望你知道它不仅仅可以用于缓存。最近,我在一篇文章中看到一份报告,介绍了如何将部分数据迁移到Redis,并将请求首先发送到Redis。现在,我想说的是不是我们如何应用它,而是在使用Spring及其抽象时,我们可......