第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態(tài)更新 Redis 排序集中元素的等級

動態(tài)更新 Redis 排序集中元素的等級

Go
長風秋雁 2022-06-01 17:45:10
在我的 Go 程序中,我正在使用一個名為的 Redis Sorted Set MyEntries,它具有三個元素:EntryA,EntryB以及EntryC排名1、2和3(等等..)。它都是有序的,元素是唯一的(這就是我不使用 LIST 的原因)。但是問題是,如果刪除一個元素,排名順序顯然不再是這種情況!例如,如果我刪除EntryB,EntryC仍然會有排名 3(而不是 2)。我知道我基本上可以按索引查詢,因為索引號確實會動態(tài)變化。但不幸的是,我剛剛發(fā)現(xiàn)在 Redis 中無法按元素名稱查詢索引。你能幫我解決這個問題嗎?如果刪除了一個元素,Redis 中是否有任何方法可以動態(tài)更新排序集中的排名?PS 我正在構建一個 FIFO 排隊程序,它使用戶還可以從隊列中刪除元素(除了最舊的先離開)。您還想知道您在隊列中的位置(這就是我面臨此排名更新問題的原因)。
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經(jīng)驗 獲得超3個贊

而不是放置排名,您可以放置score標識排名。


如果用戶a有分數(shù)100,b有分數(shù)200等。


127.0.0.1:6379> zadd mysort 100 a 200 b 300 c 500 d 50 e

(integer) 5

127.0.0.1:6379> zrevrange mysort 0 -1 withscores

 1) "d"

 2) "500"

 3) "c"

 4) "300"

 5) "b"

 6) "200"

 7) "a"

 8) "100"

 9) "e"

10) "50"

127.0.0.1:6379> zrevrank mysort d

(integer) 0

127.0.0.1:6379> zrevrank mysort e

(integer) 4

127.0.0.1:6379> zrem mysort b

(integer) 1

127.0.0.1:6379> zrevrank mysort e

(integer) 3

127.0.0.1:6379> zrem mysort d

(integer) 1

127.0.0.1:6379> zrevrange mysort 0 -1 withscores

1) "c"

2) "300"

3) "a"

4) "100"

5) "e"

6) "50"

127.0.0.1:6379> zrevrank mysort e

(integer) 2

127.0.0.1:6379> zadd mysort 500 q 25 f 350 p

(integer) 3

127.0.0.1:6379> zrevrange mysort 0 -1 withscores

 1) "q"

 2) "500"

 3) "p"

 4) "350"

 5) "c"

 6) "300"

 7) "a"

 8) "100"

 9) "e"

10) "50"

11) "f"

12) "25"

127.0.0.1:6379> zrevrank mysort q

(integer) 0

在這里,您不斷將元素添加到帶有分數(shù)的排序集中,分數(shù)越高意味著排名越低 -0當您使用zrevrank. 當您刪除得分最高的元素時,得分zrem第二高的元素將排名最高,其值為0.


查看完整回答
反對 回復 2022-06-01
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號