ssdb zset操作(Ⅰ)

本文详细介绍了SSDB中的ZSet(有序集合)数据结构及其操作方法,包括添加、查询、删除、更新等基本指令,并展示了如何通过SSDB客户端进行交互式操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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_endkey_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_endkey_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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值