Redis Set 是一种未排序的字符串集合,注意,字符串是Redis基本的值,几乎可以包含任何东西,Set提供一种常量时间的加入、移除和成员检查,同时也支持set之间的 fast union, intersection, subtraction,当然,Set不会允许有重复的值。
下面是从redis-cli演示的Redis set案例:
增加成员到一个set:
sadd users:all 11 12 13 14 15 Rocket Pocket Socket
查询这个set成员:
smembers users:all
1) "Pocket"
2) "11"
3) "Socket"
4) "13"
5) "14"
6) "Rocket"
7) "12"
8) "15"
Redis内部存储Set作为字典 dictionarie ,Redis中字典是一种哈希表实现,使用的是 MurmurHash2 哈希功能,通过 incremental resizing 算法扩展增长,哈希冲突由 chaining 处理。
Set为小型集合有特别的编码,这个小型集合是所有成员在64位签名证书的基数10范围内,称为 IntSet. 这是整数型的排序数组基础,在数组中搜索是通过二进制搜索实现,显然这些对小型set是有效率的,集合大小是由set-max-intset-entries配置的,缺省默认是512。
Redis Set作为小型集合可能应用场景:可以使用Set作为跟踪IP地址;也可以表达“属于”等类似关系标志:比如动物属于生物等关系;Set还可以用来结合关系,比如Set的union/intersection/subtraction关系。
介绍Redis数据结构hash
Redis安装
Redis Cluster快速安装指南
NoSQL专题
缓存专题