Redis應用之SortedSet的使用

2021-09-05 09:26:57 字數 1196 閱讀 1936

前言:相對來說我們是比較深度使用redis的,在推薦瀑布流和排行榜等好多的場景我們主要是用的是sortedset,今天來說一說sortedset

一、基本的用法

插入資料,常用的有zaddzincrby

刪除資料,常用的有zrem,zremrangebyscore

查詢資料,常用的有zrange,zrangebyscore,zrevrange,zrevrangebyscore

二、注意點

zincrby可以對當前鍵值的score進行增減操作,減的操作傳入負數的score值即可,如果插入的資料不存在,當前key不存在,score即為傳入的score,如果key存在則當前的score加上redis本身存在的score為最終的結果

查詢資料,慎用全量的操作,尤其是在不確定當前的鍵中的結果集合的大小的情況,如果一定要用最好先判斷一下當前的鍵中結果集合的大小,根據大小分批次獲取,一般建議一次查詢返回的資料量在10kb一下,不過到幾百kb也是可以接受的,如果再大的話,需要考慮一下效能

三、問題

redis如何保證查詢的資料的順序性?

通過檢視源**,我們可以知道,redis的返回的結果集使用的是linkedhashset,儲存返回結果集合的

private set

gettupledset()

if(memberswithscores.

isempty()

) set

set =

newlinkedhashset

(memberswithscores.

size()

/2,1.0f);

iterator

iterator = memberswithscores.

iterator()

;while

(iterator.

hasnext()

)return set;

}

DelegateAndEvent應用之回馬槍

應用 delegate 和event 實現函式的 在實際的開發中非常有用。它實現的實際上是一種依賴通知的效果。通常可以用在 子窗體資訊更新的結果反饋至母窗體 類的屬性值和 ui控制項值依賴時的相互 通知 等。現通過簡單的例子 demo 這兩種應用場景 一 類的屬性值發生變化時,反饋到和它關聯的控制項...

Docker應用之倉庫

倉庫是存放映象的地方 註冊伺服器是管理倉庫的具體伺服器,每個伺服器上可以有多個倉庫,每個倉庫也可以有多個映象 如 dl.dockerpool.com ubuntu dl.dockerpool.com就是註冊伺服器位址,ubuntu是倉庫名 一 docker hub公共映象市場 docker hub是...

udp應用之廣播

要將套接字設定為允許接收廣播 將訊息傳送給區域網所有網段 廣播風暴 在乙個網路中大量傳送廣播會占用大量頻寬 傳送端 from socket import from time import sleep 傳送廣播的位址 dest 172.168.31.255 9999 s socket af inet,...