目录
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万以内),避免内存压力
发表回复