哪个内存Db应该用来缓存一个Tree,主要用于读取?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个内存Db应该用来缓存一个Tree,主要用于读取?相关的知识,希望对你有一定的参考价值。
使用案例:我们有一个Trie数据结构,每天访问量超过10万次。遍历此trie(基于输入参数)并返回存储在叶节点处的JSON。
问题/关注:最初,我尝试将此Trie存储在Redis中并使用LUA脚本执行遍历逻辑。但是,在执行时,LUA脚本会阻止整个Redis服务器。因此,有时它会影响我的系统性能。
问题:我有两个问题:
- 什么是缓存此Trie的最佳策略,其中读取很高,很少有任何更新。
- Redis是这个用例的最佳选择吗?如果没有,请建议。
答案
我们的数据库系统eXtremeDB(闭源)和Perst(开源)都提供Patricia Trie索引。没有必要实现自己的并缓存它。
每天100,000次访问,无论是否为只读,都不是繁重的工作量。你的Redis实现可能有问题;我相信别人会在w.r.t.那。
免责声明:我代表eXtremeDB和Perst的供应商。
另一答案
我们正在使用Redis使用“近缓存”。 Redisson提供此功能。如果Redisson导致问题,我们将尝试Hazelcast,默认情况下提供近缓存。
以上是关于哪个内存Db应该用来缓存一个Tree,主要用于读取?的主要内容,如果未能解决你的问题,请参考以下文章