redis集合類型_動力節(jié)點Java學院整理
我們來看看Redis五大類型中的第四大類型:“集合類型”,集合類型還是蠻有意思的,先看redis手冊,如下:
上面就是redis中的set類型使用到的所有方法,還是老話,常用的方法也就那么四個(CURD)。。。
一: 常用方法
1. SAdd
這個方法毫無疑問,就是向集合里面添加數(shù)據(jù),比如下面這樣,我往fruits集合里面添加喜愛的水果。
127.0.0.1:6379> sadd fruits apple (integer) 1 127.0.0.1:6379> sadd fruits banana (integer) 1 127.0.0.1:6379> smembers fruits 1) "banana" 2) "apple" 127.0.0.1:6379>
上面這個sadd你也看到了,我往集合里面成功添加了兩個元素,現(xiàn)在你可能不滿足這么簡單的添加,你或許想知道set這個集合在redis底層是使用什么來實現(xiàn)的,你可以用object encoding查看一下便知:
127.0.0.1:6379> object encoding fruits "hashtable" 127.0.0.1:6379>
看到了吧,是hashtable這個,看下底層代碼:
有沒有看到dictAdd方法,而其中的第三個參數(shù)正好是Null。。。對應著*val形參,然后我再帶你看看dictAdd方法的定義。
2. SPOP,SMEMBERS
既然元素進來了,總不能不出來吧,這里的第一個SPOP:移除并返回集合中的一個隨機元素。
剛才隨便插了一句話,下面我們繼續(xù)SAdd,再SPop出來。
127.0.0.1:6379> sadd fruits pear (integer) 1 127.0.0.1:6379> sadd fruits grape (integer) 1 127.0.0.1:6379> sadd fruits chestnut (integer) 1 127.0.0.1:6379> smembers fruits 1) "grape" 2) "pear" 3) "banana" 4) "apple" 5) "chestnut" 127.0.0.1:6379> spop fruits "apple" 127.0.0.1:6379> spop fruits "chestnut" 127.0.0.1:6379> smembers fruits 1) "grape" 2) "pear" 3) "banana" 127.0.0.1:6379>
這個方法確實還是蠻好的,起碼它是原子性操作,如果要我自己實現(xiàn)的話,起碼還是要10行左右代碼的。
3. SREM
既然說到了CURD,那怎么能少了D呢,它的功能定義就是:移除集合 key 中的一個或多個 member 元素,不存在的 member 元素會被忽略,
下面我隨便舉個例子,刪除fruits中的pear。
127.0.0.1:6379> smembers fruits 1) "grape" 2) "pear" 3) "banana" 127.0.0.1:6379> srem fruits pear (integer) 1 127.0.0.1:6379> smembers fruits 1) "grape" 2) "banana" 127.0.0.1:6379>
相關文章
redis發(fā)布訂閱_動力節(jié)點Java學院整理
這篇文章主要介紹了redis發(fā)布訂閱,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08Redis刪除某個目錄下的數(shù)據(jù)的實現(xiàn)
本文介紹了如何在Redis中刪除指定目錄下的數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-09-09