redis有序集合的相關指令有:1、“ZADD”,呼叫ziplistInsert函數,將成員和分值作為兩個節點分別插入到壓縮列表;2、“ZCARD”,呼叫ziplistLen函數,取得壓縮清單包含節點的數量;3、「ZCOUND」指令等。
有序集合指令的實作方法
指令 | ziplist 編碼的實作方法 | ##zset 編碼的實作方法|
---|---|---|
呼叫ziplistInsert 函數,將成員和分數作為兩個節點分別插入壓縮列表 | 先呼叫zslInsert 函數,將新元素加入跳躍表,然後呼叫dictAdd 函數,將新元素關聯到字典 | |
呼叫ziplistLen 函數,獲得壓縮列表包含節點的數量,將這個數量除以2得出集合元素的數量 | 訪問跳躍表資料結構的length 屬性,直接存取集合元素的數量 | |
#遍歷壓縮列表,統計分數在給定範圍內的節點的數量 | #遍歷跳躍表,統計分值在給定範圍內的節點的數量 | |
從表頭向表尾遍歷壓縮列表,傳回給定索引範圍內的所有元素 | 從表頭向表尾遍歷跳躍表,傳回給定索引範圍內的所有元素 | |
表尾向表頭遍歷壓縮列表,傳回給定索引範圍內的所有元素 | 從表尾向表頭遍歷跳躍表,傳回給定索引範圍的所有元素 | |
從表頭向表尾遍歷壓縮列表,尋找給定的成員,沿途記錄經過節點的數量,當找到給定成員之後,沿途節點的數量就是該成員所對應元素的排名 | 從表頭向表尾遍歷跳躍表,找出給定的成員,沿途記錄經過節點的數量,當找到給定成員之後,沿途節點的數量就是該成員所對應元素的排名 | |
從表尾向表頭遍歷壓縮列表,找出給定的成員,沿途記錄經過節點的數量,當找到給定成員之後,沿途節點的數量就是該成員所對應元素的排名 | 從錶尾向表頭遍歷跳躍表,查找給定的成員,沿途紀錄經過節點的數量,當找到給定成員之後,沿途節點的數量就是該成員所對應元素的排名 | |
遍歷壓縮列表,刪除所有包含給定成員的節點,以及被刪除成員節點旁邊的分數節點 | 遍歷跳躍表,刪除所有包含了給定成員的跳躍表節點。並在字典中解除被刪除元素的成員和分數關聯 | |
遍歷壓縮列表,尋找包含了給定成員的節點,然後取出成員節點旁邊的分數節點保存的元素分數 | 直接從字典中取出給定成員的分數 |
以上是redis有序集合的相關指令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!