应该使用内存Db中的哪一个来缓存主要用于读取的Tree?

时间:2018-07-30 14:02:59

标签: caching lua redis in-memory-database

用例:我们有一个Trie数据结构,每天可以访问超过10万次。遍历此trie(基于输入参数)并返回存储在叶节点上的JSON。

问题/关注点::最初,我尝试将Trie存储在Redis中,并使用LUA脚本执行遍历逻辑。 但是,在执行时,LUA脚本会阻止整个Redis服务器。因此,有时它会影响我的系统性能。

问题:我有两个问题:

  1. 缓存这个Trie的最佳策略是什么,该Trie的读取率很高,几乎没有任何更新。
  2. Redis是此用例的最佳选择吗?如果没有,请提出建议。

2 个答案:

答案 0 :(得分:0)

我们的数据库系统eXtremeDB(封闭源)和Perst(开放源)均提供Patricia Trie索引。无需自己实现并对其进行缓存。

每天

100,000次访问(无论是否为只读)并不繁重。您的Redis实施可能出了点问题;我敢肯定,有人会鸣叫。那个。

免责声明:我代表eXtremeDB和Perst的供应商。

答案 1 :(得分:0)

我们正在与Redis一起使用'near cache'。 Redisson提供了此功能。 如果Redisson引起问题,我们将尝试Hazelcast,默认情况下会提供近乎高速缓存。