如何建模基于路径的数据

时间:2013-02-25 02:00:49

标签: hash redis set

我需要在redis中建模数据,其中键是文件路径,每个路径都有N个键/值。

我目前正在使用Hashes建模数据。

HSET /products/clothes/pants/501-jeans "title" "Levi 501 Jeans"

这很好用,但我希望能够得到所有"裤子的列表"哈希"孩子"。我可以通过

来做到这一点
KEYS /products/clothes/pants/*

redis documentationKEYS pattern状态不应在生产中使用。

我正在考虑创建一个包含所有"路径"与哈希相关联,但我仍然不确定如何/如果我可以搜索那些。

关于如何最好地模拟此类数据的想法?

1 个答案:

答案 0 :(得分:0)

以下是我对数据进行建模的方法,看起来效果相当不错。

resources::/path/foo => Redis Hash of Resource data
resources::/path/foo/bar => Redis Hash of Resource data
resources::/path/foo/cat => Redis Hash of Resource data
resources::/path/foo/cat/dog => Redis Hash of Resource data

children::/path/foo => Redis Map [ /path/foo/bar, /path/foo/cat/, /path/foo/dog ]
children::/path/foo/bar => Redis Map [ /path/foo/bar, /path/foo/cat ]
children::/path/foo/bar/cat => Redis Map [ /path/foo/dog ]

我必须在添加/删除 resources :: key

的任何时候管理 children :: maps

我选择使用Redis 地图建模 children :: ,因此无法使用重复的路径键,但使用列表也可以正常工作(很容易