補充下上篇文章集合的命令。 上篇地址 博客園蝸牛 http://www.cnblogs.com/tdws/p/5785939.html SCARD Key獲得執行集合中元素的數量。 SDIFFSTORE 目標鍵 keys ... 將集合做DIFF差集操作,並存儲在目標鍵中。 另外同樣有SINTERS ...
補充下上篇文章集合的命令。 上篇地址 博客園蝸牛 http://www.cnblogs.com/tdws/p/5785939.html
SCARD Key獲得執行集合中元素的數量。
SDIFFSTORE 目標鍵 keys ... 將集合做DIFF差集操作,並存儲在目標鍵中。
另外同樣有SINTERSTORE,SUNIONSTORE.對於集合還不瞭解的童鞋,請看上篇文章。
最後一個要介紹的命令就是SRANDMEMBER Key。從目標鍵中取隨機一個元素。他是很有趣的。
目前SetA中有十個元素,當你指定的返回數量為正數,返回相應數量的隨機數,如果大於集合數量,那麼將集合全部元素返回。
但是如果你指定為負數,則會返回|負數|個,也就是說你指定-100,那麼即使你只有十個元素,也會給你取出一百個元素。
另外我們可以看到上三張結果圖,實際上,有時候也並不是那麼隨機,第一張和第三張圖9的次數明顯多,第二張圖1的次數明顯多。這是由於集合的存儲結構——散列表造成的。其散列函數為了實現O(1)複雜度,會將元素映射到不同的“桶”當中,比如元素9被存到第一個桶當中,那麼下一次進行隨機數選擇時,Redis先選擇桶,那麼自然第一個桶中數據少的話,被取出來的幾率也就大大增加。
有關散列函數,拉鏈法解決衝突請看百度百科鏈接