Caching 使用redis实现树型数据结构

Caching 使用redis实现树型数据结构,caching,redis,tree,registry,trie,Caching,Redis,Tree,Registry,Trie,我需要为基于树的键值开发一个缓存系统(非常类似于windows注册表编辑器) 在这种情况下,缓存键是表示树中指向值的路径的字符串,它可以是基元类型(int、string、bool、double等)或子树本身 例如: key = root\x\y\z\w , value = the whole subtree under w key = root\x\y\z\w\t , value = integer 我曾考虑过使用Redis作为简单的缓存实现,但简单的键值会忽略树层次结构的要点 此外,以这

我需要为基于树的键值开发一个缓存系统(非常类似于windows注册表编辑器)

在这种情况下,缓存键是表示树中指向值的路径的字符串,它可以是基元类型(int、string、bool、double等)或子树本身

例如:

key = root\x\y\z\w , value = the whole subtree under w

key = root\x\y\z\w\t , value = integer 
我曾考虑过使用Redis作为简单的缓存实现,但简单的键值会忽略树层次结构的要点

此外,以这种天真的方式,猜测我已经在缓存中了

key = root\x\y, value = the whole subtree under y
我正在寻找

key = root\x\y\z
朴素键值将找不到它,尽管它已存在于缓存中

我所能想到的最好的数据结构是前缀树(Trie),它可以更有效地处理键,并且可以很容易地找到我上面提到的子字符串的情况

我还没有找到任何可以处理这个数据结构的Redis实现

Redis可以处理这种缓存吗?如果没有,还有一种替代结构可以使用?

Redis还不做树。如果您必须在Redis中存储一个树状结构,我建议您查看

或者,您可以开发一个Redis模块,它可以做任何您想要/需要的事情

免责声明:我是ReJSON的作者之一

外部参照:

试试这个redis。它在redis中提供原生的polytree数据结构