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

简介: 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

目录
相关文章
|
3月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
315 86
|
7月前
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
|
3月前
|
存储 缓存 NoSQL
Redis基础命令与数据结构概览
Redis是一个功能强大的键值存储系统,提供了丰富的数据结构以及相应的操作命令来满足现代应用程序对于高速读写和灵活数据处理的需求。通过掌握这些基础命令,开发者能够高效地对Redis进行操作,实现数据存储和管理的高性能方案。
133 12
|
3月前
|
存储 消息中间件 NoSQL
【Redis】常用数据结构之List篇:从常用命令到典型使用场景
本文将系统探讨 Redis List 的核心特性、完整命令体系、底层存储实现以及典型实践场景,为读者构建从理论到应用的完整认知框架,助力开发者在实际业务中高效运用这一数据结构解决问题。
|
3月前
|
存储 缓存 监控
Redis分区的核心原理与应用实践
Redis分区通过将数据分散存储于多个节点,提升系统处理高并发与大规模数据的能力。本文详解分区原理、策略及应用实践,涵盖哈希、范围、一致性哈希等分片方式,分析其适用场景与性能优势,并探讨电商秒杀、物联网等典型用例,为构建高性能、可扩展的Redis集群提供参考。
224 0
|
4月前
|
存储 缓存 人工智能
Redis六大常见命令详解:从set/get到过期策略的全方位解析
本文将通过结构化学习路径,帮助读者实现从命令语法掌握到工程化实践落地的能力跃迁,系统性提升 Redis 技术栈的应用水平。
|
5月前
|
NoSQL Redis
Lua脚本协助Redis分布式锁实现命令的原子性
利用Lua脚本确保Redis操作的原子性是分布式锁安全性的关键所在,可以大幅减少由于网络分区、客户端故障等导致的锁无法正确释放的情况,从而在分布式系统中保证数据操作的安全性和一致性。在将这些概念应用于生产环境前,建议深入理解Redis事务与Lua脚本的工作原理以及分布式锁的可能问题和解决方案。
233 8
|
5月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
605 2
|
6月前
|
NoSQL 网络协议 Java
【Azure Redis】Redis服务端的故障转移(Failover)导致客户端应用出现15分钟超时问题的模拟及解决
在使用 Azure Cache for Redis 服务时,因服务端维护可能触发故障转移。Linux 环境下使用 Lettuce SDK 会遇到超时 15 分钟的已知问题。本文介绍如何通过重启 Primary 节点主动复现故障转移,并提供多种解决方案,包括调整 TCP 设置、升级 Lettuce 版本、配置 TCP_USER_TIMEOUT 及使用其他 SDK(如 Jedis)来规避此问题。
246 1
|
7月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
498 17