目录

  1. 集合类型概述
  2. 集合的典型使用场景
  3. 集合常用命令
  4. 集合的高级用法
  5. 使用注意事项
  6. 参考资料

1. 集合类型概述

Redis 的 集合(Set) 是一个无序、不允许重复元素 的字符串集合。它适用于存储不重复的数据,比如标签、唯一用户ID、关键字等。

集合底层使用哈希表实现,添加、删除、查找元素的复杂度为 O(1)。


2. 集合的典型使用场景

  • 用户标签系统:如记录每个用户的兴趣标签 SADD user:1001:tags movie music
  • 去重功能:如统计某篇文章的唯一访问用户
  • 社交关系模型:例如用户关注和粉丝列表
  • 集合运算:支持交集、并集、差集操作,适合推荐系统或权限计算

3. 集合常用命令

命令描述
SADD key member [member ...]向集合添加元素
SREM key member [member ...]移除元素
SMEMBERS key获取所有成员
SISMEMBER key member检查元素是否存在
SCARD key返回元素数量
SRANDMEMBER key [count]随机返回一个或多个元素(不删除)
SPOP key [count]随机移除并返回一个或多个元素
SUNION key1 key2返回并集
SINTER key1 key2返回交集
SDIFF key1 key2返回差集

4. 集合的高级用法

  • 兴趣匹配系统:两个用户的兴趣集合求交集判断相似度
  • 推荐算法:通过集合运算找出共同喜好的内容
  • 限制访问行为:用集合记录 IP 或用户 ID,限制频繁访问
  • 唯一访客统计:将用户 ID 放入集合中进行去重 UV 统计

5. 使用注意事项

  • 集合是无序结构,不要用它来保存有序数据
  • 不支持排序或按添加顺序读取
  • 集合成员必须是字符串类型
  • 集合操作尽量控制在适当规模(如1万以内),避免内存压力

6. 参考资料