我需要在 redis 中对数据建模,其中键是文件路径,每个路径都有 N 个键/值。
我目前正在使用哈希对数据建模。
HSET /products/clothes/pants/501-jeans "title" "Levi 501 Jeans"
这很好用,但是我希望能够获得所有“裤子”散列“ child ”的列表。我可以通过
KEYS /products/clothes/pants/*
但是redis documentation状态 KEYS pattern
不应在生产中使用。
我正在考虑创建一组与哈希关联的所有“路径”,但我仍然不确定如何/是否可以搜索这些路径。
关于如何最好地为此类数据建模的想法?
最佳答案
这是我对数据建模的方式,它似乎运行良好。
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 maps 对 children:: 进行建模,因此不可能有重复的路径键,但是使用列表也可能有效(易于
关于hash - 如何建模基于路径的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059012/