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

Which in memory Db should be used to cache a Tree, used majorly for read?

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

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

问题:我有两个问题:

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

我们的两个数据库系统 eXtremeDB(闭源)和 Perst(开源)都提供 Patricia Trie 索引。无需自己实现和缓存。

每天100,000 次访问,无论是否只读,都不是很大的工作量。您的 Redis 实施可能有问题;我确定其他人会插话 w.r.t。那。

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

我们将继续使用 'near cache' 和 Redis。 Redisson 提供了这种能力。 如果 Redisson 导致问题,我们会尝试 Hazelcast,它默认提供近缓存。