Redis set数据类型命令使用及应用场景使用总结

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis set数据类型命令使用及应用场景使用总结

转载请注明出处:

目录

  1.sadd 集合添加元素

  2.srem移除元素

  3.smembers 获取key的所有元素

  4.scard 获取key的个数

  5.sismember 判断member元素是否存在集合key中

  6.srandmember key count 从集合key中随机选出count个元素,元素不从key中删除

  7.spop 从集合key中随机选出count个元素,元素从key中删除

  8.sinter 交集运算

  9.sinterstore 将交集的结果存入到新集合destination中

  10.sunion 并集运算

  11.sunionstore 将并集结果存入新集合destionation中

  12.sdiff 差集运算

  13.sdiffstore 将差集结果存入新的集合

1.sadd 集合添加元素

sadd key value

  添加元素示例:

127.0.0.1:6379> sadd action:10001 101 102 103 104
(integer) 4
127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "103"
4) "104"
127.0.0.1:6379>

2.srem移除元素

srem key member

  示例

127.0.0.1:6379> srem action:10001 101
(integer) 1
127.0.0.1:6379> srem action:10001 106
(integer) 0
127.0.0.1:6379>

  元素存在移除成功返回1,不存在移除返回0

3.smembers 获取key的所有元素

smembers key

  示例:

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "103"
4) "104"

4.scard 获取key的个数

scard key

  示例:

127.0.0.1:6379> scard action:10001
(integer) 4
127.0.0.1:6379>

  应用场景:多少人点赞,多少人评论,以及多少人关注等

5.sismember 判断member元素是否存在集合key中

sismember key member

  示例

127.0.0.1:6379> sismember action:10001 102
(integer) 1
127.0.0.1:6379> sismember action:10001 109
(integer) 0
127.0.0.1:6379>

  应用场景:检查用户是否点过赞或访问过

6.srandmember key count 从集合key中随机选出count个元素,元素不从key中删除

srandmember key count

  示例

127.0.0.1:6379> srandmember action:10001 1
1) "104"
127.0.0.1:6379> srandmember action:10001 2
1) "104"
2) "103"
127.0.0.1:6379>

  应用场景:随机抽取,并不从集合中移除随机抽取出的元素

7.spop 从集合key中随机选出count个元素,元素从key中删除

spop key count

  示例

127.0.0.1:6379> spop action:10001 1
1) "103"
127.0.0.1:6379>

  应用场景: 活动抽奖,从参与活动的set集合中,随机抽取出一等奖,二等奖等; 游戏场景中 给用户分配分区

8.sinter 交集运算

sinter key [key...]

  示例:

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "104"
127.0.0.1:6379> smembers action:10002
1) "102"
2) "104"
3) "106"
4) "108"
127.0.0.1:6379> sinter action:10001 action:10002
1) "102"
2) "104"
127.0.0.1:6379>

  应用场景:共同的好友,爱好等

9.sinterstore 将交集的结果存入到新集合destination中  

sinterstore destination key [key....]

  示例

127.0.0.1:6379> sinterstore  common:action:10001 action:10001 action:10002
(integer) 2
127.0.0.1:6379> smembers common:action:10001
1) "102"
2) "104"
127.0.0.1:6379>

  应用场景:共同的好友,爱好等

10.sunion 并集运算

sunion key [key ....]

  示例

127.0.0.1:6379> sunion action:10001 action:10002
1) "101"
2) "102"
3) "104"
4) "106"
5) "108"
127.0.0.1:6379>

  应用场景:获取集合间的所有元素

11.sunionstore 将并集结果存入新集合destionation中

sunionstore destionation key [key.....]

  示例

127.0.0.1:6379> sunionstore all:action:10001 action:10001 action:10002
(integer) 5
127.0.0.1:6379> smembers all:action:10001
1) "101"
2) "102"
3) "104"
4) "106"
5) "108"
127.0.0.1:6379>

  应用场景:获取集合间的所有元素到新的集合

12.sdiff 差集运算

sdiff key [key....]

  差集比较的是 前面第一个key中的元素在后面集合元素中比较,后面集合中包含key的元素

  示例

127.0.0.1:6379> smembers action:10001
1) "101"
2) "102"
3) "104"
127.0.0.1:6379> smembers action:10002
1) "102"
2) "104"
3) "106"
4) "108"
127.0.0.1:6379> sdiff action:10001 action:10002
1) "101"
127.0.0.1:6379>

  应用场景:可能认识的人

13.sdiffstore 将差集结果存入新的集合

sdiffstore destination key [key...]

  示例

127.0.0.1:6379> sdiffstore diff:action:10001 action:10001 action:10002
(integer) 1
127.0.0.1:6379> smembers diff:action:10001
1) "101"
127.0.0.1:6379>

  应用场景:可能认识的人

 

 

标签: redis

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
香吧香
+关注
目录
打赏
0
1
1
0
77
分享
相关文章
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
Redis数据类型面试给分情况
Redis常见数据类型包括:string、hash、list、set、zset(有序集合)。此外还包含高级结构如bitmap、hyperloglog、geo。不同场景可选用合适类型,如库存用string,对象存hash,列表用list,去重场景用set,排行用zset,签到用bitmap,统计访问量用hyperloglog,地理位置用geo。
53 5
|
30天前
|
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
172 2
【Azure Redis】Redis服务端的故障转移(Failover)导致客户端应用出现15分钟超时问题的模拟及解决
在使用 Azure Cache for Redis 服务时,因服务端维护可能触发故障转移。Linux 环境下使用 Lettuce SDK 会遇到超时 15 分钟的已知问题。本文介绍如何通过重启 Primary 节点主动复现故障转移,并提供多种解决方案,包括调整 TCP 设置、升级 Lettuce 版本、配置 TCP_USER_TIMEOUT 及使用其他 SDK(如 Jedis)来规避此问题。
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
289 17
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
748 16
Redis的基本特性以及其基础命令用法
这只是冰山一角,Redis的强大功能和简洁的操作方法值得我们深入了解和掌握,是复杂数据问题解决的有力工具。所以,来一场有趣的Redis冒险吧!
145 6
DB,Cache和Redis应用场景分析
最近做一产品,微博方面的。数据存储同时用到了DB(mysql),Cache(memcache),Redis。其实最开始架构设计的时候是准备用MongoDB的,由于学习成本太高,最终选择放弃了,采用了比较保守的方案。
1217 0
|
3月前
|
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
485 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问