前面的hash数据结构可以提供很强大的查询能力,但是因为底层采用hashmap,也就是数组加链表的形式,数据量大了以后还是会受限于链表的查询速度。想要在海量数据情况下获得更高的查询速度,就需要用用到一个新的数据类型,set。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
set数据类型
如果我们将hash数据类型的field内容去掉,而直接将value保存在field的位置,就变成了set。因为之前是存储field的,所以set中的元素不能重复。
常用操作
- sadd key member1 [member2 …]
往set中添加元素,不会按照输入的前后顺序排列
127.0.0.1:6380> sadd set1 james kobe durant embiid davis
(integer) 5
127.0.0.1:6380> smembers set1
1) "embiid"
2) "durant"
3) "kobe"
4) "james"
5) "davis"
127.0.0.1:6380>
- smembers key
查询set中的所有元素,如上所示
- srem key member1 [member2 …]
删除set中的元素,注意删除元素后剩下的元素进行了重新排列
127.0.0.1:6380> smembers se