2013-10-23

SSDB 增加 zrank, zrange 命令

Views: 36129 | 6 Comments

Zrank/zrrank 命令是 zset 数据结构的一个特有命令, 用于求某个元素在集合中的排序名次. 对于 Redis 来说, 数据都在内存里, 而且是排序的, 所以求元素的排名(indexOf)可以很快, 但因为 SSDB 的数据主要在硬盘中, 所以, 求排序名次可不是那么简单.

基于这个考虑, SSDB 原来并不支持 zrank 命令. 但 zrank 命令的需求还是有的, 经过考虑, 所以在 1.6.3 版本中增加了 zrank 命令.

不过, 使用这个命令应该是在离线环境中, 而不能是在线上生产环境中, 因为 zrank 的实现是通过遍历数据(相当于全表扫描).

另外, SSDB 还增加了 zrange/zrrange 命令, 相当于数组的 slice 操作或者 MySQL 的 limit 操作. 和 zrank 类似, zrange 也是通过表扫描来实现的, 只要 offset 越大, 速度就越慢. 所以, 在 offset 小于 200 时, 可以在线上生产环境使用, 否则最好是离线环境中使用.

Related posts:

  1. SSDB 的 C++ 客户端接口
  2. SSDB与Redis命令对比
  3. SSDB 支持 TTL 过期机制
  4. SSDB 已经支持在线备份功能!
  5. LevelDB 服务器 SSDB 支持主从(master-slave)同步了!
Posted by ideawu at 2013-10-23 13:05:07 Tags: , , ,

6 Responses to "SSDB 增加 zrank, zrange 命令"

Leave a Comment