We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hi,感谢开源!我在文档找了下关于数据结构映射的文档,没有太详细的说明,曾经关注在rocksdb模拟redis跳表的实现,特别是rev 相关的命令,如: zrevrange、zrevrank、zrevrangebyscore。这些接口在既有的开源项目中实现的非常不理想,毕竟,leveldb的反向迭代器也是比正向慢多了,虽然官网只是提到一句: 我在另个实现中测试了其普通zrange的实现,大概1亿条数据,后来看到其实现是靠正向遍历: 这是完全不能用于生产环境的实现! 所以,zanRedisDB能否说明下一些操作的时间复杂度以及实现呢?
The text was updated successfully, but these errors were encountered:
看起来在rocksdb上实现zset函数有本质困难,zanRedisDB直接限制zset 大小10240个members了。
Sorry, something went wrong.
没有限制member个数, 10240限制的是单个member的长度. 复杂度上面, zrange这种正向range比较快, 反向revrange这种会比较慢, 受限于底层db的反向迭代性能, 你可以测试下看看是否满足你的要求. 另外还是不建议这种特别多的member. 最好还是百万以内.
看起来zrange,revrange操作还是O(N)实现(redis是O(logN)),对于这块优化,是否有计划或策略呢
深翻页用zrangebyscore, ZRANGEBYLEX会更快. zrange你那个测试用法相当于深翻页了. 你一个zset里面放这么多members, 几个不同的大zset加起来 redis内存也抗不住啊.
No branches or pull requests
hi,感谢开源!我在文档找了下关于数据结构映射的文档,没有太详细的说明,曾经关注在rocksdb模拟redis跳表的实现,特别是rev 相关的命令,如: zrevrange、zrevrank、zrevrangebyscore。这些接口在既有的开源项目中实现的非常不理想,毕竟,leveldb的反向迭代器也是比正向慢多了,虽然官网只是提到一句:
我在另个实现中测试了其普通zrange的实现,大概1亿条数据,后来看到其实现是靠正向遍历:
这是完全不能用于生产环境的实现!
所以,zanRedisDB能否说明下一些操作的时间复杂度以及实现呢?
The text was updated successfully, but these errors were encountered: