底层结构
- intset(整数集合):当集合中的元素都是整数且元素个数小于set-maxintset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用。
- hashtable(哈希表):当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现。
intset:整形集合
在inset.h文件中
typedef struct intset {
uint32_t encoding;
uint32_t length;
int8_t contents[];
} intset;
属性介绍
encoding:编码类型
length:元素个数
contents[] : 元素存储
应用场景
共同好友、共同兴趣、分类标签
set操作命令【无序,不重复】
1.sadd:set中加入元素
2.srem:set中删除指定元素
3.scard :查看set集合长度
4.sismember: 查看指定元素是否存在
5.smembers : 查看某个集合的所有元素
6.spop:随机推出一个元素
集合间操作
1.sdiff 差集
2.sinter 并集
3.sunion 交集