zset
ssdb的zset是ssdb三種數據結構中的一種: sorted set(有序集合),有name,key,score三個屬性,按score權重排序,且key值不可重複,key不重複通過map實現,以score排序通過set實現,name是一個集合的名字。
操作
運行ssdb
在ssdb的bin目錄下執行
./ssdb-cli
進入交互模式(mac或linux可通過命令sudo find / --name ssdb-cli
查找路徑)zset name key score
添加一條集合名爲name,鍵值爲key權重爲score的zset記錄,無則創建,有則更新
ssdb 127.0.0.1:22223> zset test 2 3
ok
(0.000 sec)
zget name key
查詢集合名爲name鍵值爲key對應的權重值
ssdb 127.0.0.1:22223> zget test 2
3
(0.000 sec)
zdel name key
刪除集合名爲name鍵值爲key的記錄
ssdb 127.0.0.1:22223> zdel test 2
ok
(0.000 sec)
ssdb 127.0.0.1:22223> zget test 2
not_found
(0.000 sec)
zincr name key score
集合名爲name鍵值爲key的權重加上score,若此name或此key不存在,則等同於zset name key score
ssdb 127.0.0.1:22223> zincr test 1 1
1
(0.000 sec)
zexists name key
檢測集合名爲name鍵值爲key,若存在返回1, 不存在返回0
ssdb 127.0.0.1:22223> zexists test 1
1
(0.000 sec)
ssdb 127.0.0.1:22223> zexists test 3
0
(0.000 sec)
zlist start end limit
查找limit條範圍內起始字符串爲start,結束字符串爲end的集合名字
ssdb 127.0.0.1:22223> zlist v z 10
key
-----------------
verify:judges:1
verify:teacher:-1
verify:teacher:1
verify:teacher:2
vip_free_view_count:1009224
vip_free_view_count:1009344
vip_free_view_count:1009561
vip_free_view_count:1009651
vip_free_view_count:1010063
vip_free_view_count:1010926
10 result(s) (0.000 sec)
(0.000 sec)
ssdb 127.0.0.1:22223> zlist vi z 10
key
-----------------
vip_free_view_count:1009224
vip_free_view_count:1009344
vip_free_view_count:1009561
vip_free_view_count:1009651
vip_free_view_count:1010063
vip_free_view_count:1010926
vip_free_view_count:12209262
vip_free_view_count:1245653
vip_free_view_count:17259510
vip_free_view_count:17864537
10 result(s) (0.000 sec)
(0.000 sec)
zrlist start end limit
倒序的zlist查找,start,end及查詢的結果都是從反方向開始計算的
ssdb 127.0.0.1:22223> zrlist z vi 10
key
-----------------
vip_free_view_count:6248026
vip_free_view_count:47406901
vip_free_view_count:46854291
vip_free_view_count:46701138
vip_free_view_count:46424827
vip_free_view_count:46160634
vip_free_view_count:46106375
vip_free_view_count:45909457
vip_free_view_count:45584502
vip_free_view_count:42903236
10 result(s) (0.000 sec)
(0.000 sec)
zkeys name key_start score_start score_end limit
查找集合名爲name且權重大於等於score_start
小於等於score_end
,key_start
參數主要用於分頁查詢,由於一頁限制條目固定,,查詢數目一般都爲limit(除最後一次),score
相同的情況下,由於按score
查詢,一個score
可能對應多個值,無法實現固定數目,所以從查詢到的最後一個score
值截取部分數據,由key_start開始截取
(key.score == score_start && key > key_start || key.score > score_start) && key.score <= score_end
ssdb 127.0.0.1:22223> zkeys vip_free_view_count:46701138 '' 1 10 10000
key
-----------------
58750a514255bf6ebb482336
588324374255bf39fe02acc8
58836b3e4255bf39ffd51be7
5884a3b64255bf3a0586ee5c
58860fea4255bf3a03271404
5886d01a4255bf39ffd5d69a
588852674255bf3a04b9596a
588890b54255bf2456e638cb
5888a4144255bf243b0ee774
5889f1af4255bf241464885c
588ab4a44255bf24467f8531
588bf0b14255bf241c4e3620
588d74a34255bf2456e72205
588db5904255bf24241b9a48
588eaedd4255bf2414655853
588ffb474255bf241465992a
5890a2c34255bf2456e7d342
5892de9a4255bf2456e840e0
58c696b84255bf4d9eb85c5a
58c743894255bf4da39fe5a0
58c7e6144255bf4da07969c4
21 result(s) (0.001 sec)
(0.001 sec)
ssdb 127.0.0.1:22223> zkeys vip_free_view_count:46701138 588ab4a44255bf24467f8531 1 10 10000
key
-----------------
58750a514255bf6ebb482336
588324374255bf39fe02acc8
58836b3e4255bf39ffd51be7
5884a3b64255bf3a0586ee5c
58860fea4255bf3a03271404
5886d01a4255bf39ffd5d69a
588852674255bf3a04b9596a
588890b54255bf2456e638cb
5888a4144255bf243b0ee774
5889f1af4255bf241464885c
10 result(s) (0.001 sec)
(0.001 sec)
zscan name start_key start_score end_score limit
查找集合名爲name且權重大於等於score_start
小於等於score_end
,key_start
參數主要用於分頁查詢,由於一頁限制條目固定,,查詢數目一般都爲limit(除最後一次),score
相同的情況下,由於按score
查詢,一個score
可能對應多個值,無法實現固定數目,所以從查詢到的最後一個score
值截取部分數據,由key_start開始截取
(key.score == score_start && key > key_start || key.score > score_start) && key.score <= score_end
ssdb 127.0.0.1:22223> zscan vip_free_view_count:46701138 '' 1 10 10000
key value
-------------------------
58750a514255bf6ebb482336: 1
588324374255bf39fe02acc8: 1
58836b3e4255bf39ffd51be7: 1
5884a3b64255bf3a0586ee5c: 1
58860fea4255bf3a03271404: 1
5886d01a4255bf39ffd5d69a: 1
588852674255bf3a04b9596a: 1
588890b54255bf2456e638cb: 1
5888a4144255bf243b0ee774: 1
5889f1af4255bf241464885c: 1
588ab4a44255bf24467f8531: 1
588bf0b14255bf241c4e3620: 1
588d74a34255bf2456e72205: 1
588db5904255bf24241b9a48: 1
588eaedd4255bf2414655853: 1
588ffb474255bf241465992a: 1
5890a2c34255bf2456e7d342: 1
5892de9a4255bf2456e840e0: 1
58c696b84255bf4d9eb85c5a: 1
58c743894255bf4da39fe5a0: 1
58c7e6144255bf4da07969c4: 1
21 result(s) (0.001 sec)
(0.001 sec)
ssdb 127.0.0.1:22223> zscan vip_free_view_count:46701138 588ab4a44255bf24467f8531 1 10 10000
key value
-------------------------
588bf0b14255bf241c4e3620: 1
588d74a34255bf2456e72205: 1
588db5904255bf24241b9a48: 1
588eaedd4255bf2414655853: 1
588ffb474255bf241465992a: 1
5890a2c34255bf2456e7d342: 1
5892de9a4255bf2456e840e0: 1
58c696b84255bf4d9eb85c5a: 1
58c743894255bf4da39fe5a0: 1
58c7e6144255bf4da07969c4: 1
10 result(s) (0.001 sec)
(0.001 sec)