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)