前言:相對來說我們是比較深度使用redis的,在推薦瀑布流和排行榜等好多的場景我們主要是用的是sortedset
,今天來說一說sortedset
一、基本的用法
插入資料,常用的有zadd
和zincrby
刪除資料,常用的有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,...