Redis-集合(Set)基础
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Redis-集合(Set)基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                Redis集合包括Set(無序集合)和ZSet(有序集合),這里的Set實現相當于Java中的HashSet,它內部實現了一個特殊的字典,字典中所有的value都是一個值NULL。下面我們來熟悉下set的常用的命令
Set
>sadd?name hello(integer)1>sadd?name?hello????#重復,不能插入(integer)0>sadd?name?i am ok(integer)3>smembers name"hello""i""am""ok">sismember?name?hello????#檢測值是否存在(integer)1>scard?name?????#獲取長度(integer)4>spop?name????#獲取第一個"hello"ZSet
zset是一個有序集合,他有著java里的SortedSet和HashMap的特色,它是一個集合能保證內部value唯一,又有一個排序字段score來排序,他的內部結構實現了跳躍列表,俗稱跳表,接下來會找個時間來解釋zset中的跳表實現。一般來說我們使用zset最多的還是排名,比如直播里面的送禮物排名,粉絲個數排名等
下面我們來使用一些常用的命令
>zadd name 2 world(integer)1>zadd name 1 hello(integer)1>zrange?name?0?-1????#按照score升序排列"hello""world">zrevrange?name?0?-1????#按照score降序排列"world""hello">zcard?name????#獲取集合個數(integer)2>zscore?name?hello????#獲取內部score1.0>zrem?name?world????#刪除(integer)1一般來說我們進行有序的列表進行搜索的時可以使用遍歷整個列表,但是為了考慮性能我們使用二分法是最快的,但是列表需要隨機插入和刪除,這樣數據是不適合這樣做,那么我們嘗試著使用鏈表,鏈表很好的支持隨機插入和刪除,但是鏈表又不能進行二分法快速查找,那么我們redis里面使用了一個叫跳躍列表的方式來實現zset,關于這方面的分享,我會下后面的章節里詳細描述。
?
一名正在搶救的coder
筆名:mangolove
CSDN地址:https://blog.csdn.net/mango_love
GitHub地址:https://github.com/mangoloveYu
總結
以上是生活随笔為你收集整理的Redis-集合(Set)基础的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: coreos相关
- 下一篇: 使用setfacl实现子目录继承父目录权
