介绍Redis数据结构set

  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专题

缓存专题