我们使用冒号(:)作为命名空间分隔符,使用哈希(#)作为键的id部分,例如:
logistics:building#23
我不知道Redis关键命名是否真的存在广泛的“最佳实践”。
我已经尝试使用ASCII NUL字符作为我的分隔符(因为Redis和Python都是8位干净的)。如果您正在查看原始密钥,它看起来有点难看,但其想法是将其隐藏在抽象层之后。冒号和管道符号是明显的替代方案,只要您的名称空间的组件要么保证不使用它们,要么您愿意根据需要对每个组件进行编码。但是,如果您要对它们进行编码,那么您需要开发抽象层并避免查看原始密钥......这让我回到了在我的推理中使用\ 0。
我会很有兴趣看看是否有任何其他意见。
redis中键的常规命名约定是什么?我见过 值分隔:但我不确定常规约定是什么, 或为什么。
是的,结肠标志 : 命名键时是一种约定。在 这个 redis网站上的教程说明: 尝试坚持使用架构。例如“object-type:id:field”即可 一个好主意,比如“user:1000:password”。我喜欢用点 多字词字段,例如“comment:1234:reply.to”。
:
您是否只能查询键的开头以返回所有键 用户?
如果你的意思是像直接查询所有开头的键 user: 有一个 按键 命令。但是,此命令应仅用于调试目的,因为它是 上) 因为它正在搜索数据库中的所有键。
user:
对于这个问题更合适的解决方案是创建专用密钥,我们的名字是 users ,将存储所有用户密钥,例如, 名单 要么 组 数据结构。
users