Caching 使用redis实现树型数据结构
我需要为基于树的键值开发一个缓存系统(非常类似于windows注册表编辑器) 在这种情况下,缓存键是表示树中指向值的路径的字符串,它可以是基元类型(int、string、bool、double等)或子树本身 例如: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作为简单的缓存实现,但简单的键值会忽略树层次结构的要点 此外,以这
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数据结构