Redis 集合与集合运算

发布日期:2026-07-24 10:01:20  浏览量 :0
发布日期:2026-07-24 10:01:20  
0

Redis 集合是无序的唯一字符串集合。其价值主要体现在两个方面:成员资格测试是即时完成的,并且 Redis 可以在数据库内部计算集合之间的交集、并集和差集。这使得诸如“该用户是否关注了那个用户”、“这两篇文章共享哪些标签”以及“今天有多少独立访客”等问题,可以通过单个快速命令来解决,而无需在应用程序代码中使用循环。

这是《Redis 大师课》系列的第六部分,继列表和队列之后。

基础:唯一成员资格

集合存储唯一的值,并能快速告知你某个元素是否存在于其中:

SADD article:1:tags "redis" "database" "caching"
SADD article:1:tags "redis"        # ignored, already present
SISMEMBER article:1:tags "redis"   # 1 (yes), O(1)
SCARD article:1:tags               # 3 (count of members)
SMEMBERS article:1:tags            # all members
SREM article:1:tags "caching"      # remove a member

唯一性是自动保证的:添加已存在的值不会执行任何操作(空操作)。此外,SISMEMBER 的时间复杂度为常数级,因此当你需要快速查询“X 是否在此组中”时,集合是合适的数据结构:例如用户的权限、被阻止的标识符、已见过的互联网协议地址或项目的标签。将这些数据存储为集合可以提供即时的成员资格检查,这是列表或数据库查询无法比拟的。

数据库中的集合代数

集合区别于其他数据结构的特点在于能够计算它们之间的关系。Redis 以原子方式执行以下三种操作:

SINTER user:1:follows user:2:follows   # accounts both follow

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

分享到:

长按或扫码识别 分享给好友

长按或扫码识别 分享给好友
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据