使用哪种内存数据库来缓存主要用于读取的树?

用例: 我们有一个Trie数据结构,每天将被访问超过100,000次。 根据输入参数遍历此Trie并返回存储在叶节点上的JSON。

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

问题: 我有两个问题:

  1. 在读取较高且更新很少的情况下,缓存此Trie的最佳策略是什么?
  2. 如果不是,Redis是这种用例的最佳选择吗?如果不是,请给出建议。
点赞
用户1880772
用户1880772

将下面翻译成中文并且保留原本的 markdown 格式:

双方的数据库系统,eXtremeDB(闭源)和Perst(开源)都提供Patricia Trie索引。没有必要实现你自己并缓存它。

每天10万次访问,无论是非常读取密集还是不是,都不是一个沉重的工作负载。你的Redis实现可能存在问题;我相信其他人会在这方面发表意见。

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

2018-07-30 20:07:59
用户5158383
用户5158383

我们将继续使用 Redis 的“近缓存”功能,Redisson 提供了这个能力。

如果 Redisson 出现问题,我们将尝试使用 Hazelcast,它默认提供了近缓存。

2018-08-24 13:51:48