42人参与 • 2025-05-09 • Redis
开发过程中为确保 redis 键名的一致性、可读性和易维护性,本规范旨在指导开发团队在使用 redis 时设计合理的键名格式。
采用 模块:子模块:业务描述:标识 的分层格式,明确数据来源和用途。
<module>:<submodule>:<description>:<identifier>
user:profile:id:12345
order:status:order_id:98765
product:inventory:item_id:67890
:
)作为分隔符表示逻辑层次关系。id
, order_id
等)应明确表达其意义。_
) 分隔复合单词,而非驼峰命名(camelcase
)。针对不同的数据结构(如 list
, set
, hash
),可以在业务描述部分或标识符后添加类型信息:
数据类型 | 格式示例 |
---|---|
字符串(string) | user:profile:id:12345 |
列表(list) | chat:messages:list:room_id:56789 |
哈希(hash) | user:profile:hash:id:12345 |
集合(set) | product:categories:set:item_id:67890 |
有序集合(zset) | leaderboard:score:zset:game_id:11111 |
对于有时间属性或需要自动过期的数据,可在键名中包含时间信息:
<description>:date:<yyyymmdd>
示例:order:summary:date:20241122
<description>:ts:<timestamp>
示例:session:token:uid:abc123:ts:1692806400
user:profile:personal:information:unique:identifier:12345
user:profile:id:12345
usr:prf:id:12345
user:profile:id:12345
orderstatusorderid98765
order:status:order_id:98765
public class rediskeyutil { // 用户资料键名 public static string userprofilekey(string userid) { return string.format("user:profile:id:%s", userid); } // 订单状态键名 public static string orderstatuskey(string orderid) { return string.format("order:status:order_id:%s", orderid); } // 聊天记录列表键名 public static string chatmessageskey(string roomid) { return string.format("chat:messages:list:room_id:%s", roomid); } }
用途 | 键名 |
---|---|
用户资料 | user:profile:id:12345 |
用户登录状态 | user:session:uid:abc123 |
商品库存 | product:inventory:item_id:67890 |
订单状态 | order:status:order_id:98765 |
聊天消息队列 | chat:messages:list:room_id:12345 |
排行榜 | leaderboard:score:zset:game_id:1 |
通过以上规范,团队可以提高 redis 数据的可读性和可维护性,同时避免常见的命名问题。建议结合实际业务情况,适当调整以满足具体需求。
到此这篇关于浅谈redis key 命名规范文档的文章就介绍到这了,更多相关redis key 命名规范内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论