redis key 键名称中的冒号 : 命名空间层次的表示_redis 冒号分隔符含义_锦天的博客-程序员秘密

技术标签: namespace  数据库  redis  分隔符  

结论

redis中key的命名,用:分隔不同的层次|命名空间,如:user:id12345:contact
如果某个对象有字段的字段,用.连接。如user:id12345:contact.mail

以及一款redis的可视化操作工具:Redis Desktop Manager

Links

redis官网文档:https://redis.io/topics/data-types-intro
SO社区问答:https://stackoverflow.com/questions/6965451/redis-key-naming-conventions
国内社区问答:https://answer-id.com/51740587

原文:

Very short keys are often not a good idea. There is little point in writing "u1000flw" as a key if you can instead write "user:1000:followers". The latter is more readable and the added space is minor compared to the space used by the key object itself and the value object. While short keys will obviously consume a bit less memory, your job is to find the right balance.
Try to stick with a schema. For instance "object-type:id" is a good idea, as in "user:1000". Dots or dashes are often used for multi-word fields, as in "comment:qq12345:reply.to" or "comment:qq12345:reply-to".

即下图中的第2、3点:
在这里插入图片描述

其他分隔符

读过文首三个链接会发现以下格式的ID:
user:id12345:contact 表示user表的ID为id12345的记录的字段contact。(那这个key的值就是对应的字段的值了)
user::id12345::contactuser:::id12345:::contact,即多层冒号分隔。
user/id12345/contact
使用多层冒号分隔、使用/分隔,我测试过后,都可以正常获取key的值。但是:
RedisDesktopManager这款Redis可视化管理工具中,只有使用单个:分隔的key名称,层次看起来最舒服【图不贴了,有兴趣自己试试看】。
另外redis官网也是介绍的:,所以key名称的层次分隔符就推荐单个冒号:

最后一个字段contact,如果联系方式包含三种:tel, mail, qq,怎么命名?
官网说可以使用.-连接,如:user:id12345:contact.mailuser.id12345.contact-mail表示用户表中ID为id12345的记录的contact属性中的mail属性值

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wuyujin1997/article/details/106267676

智能推荐

以太坊知识教程------智能合约(3)函数修饰符_智能合约 私有变量可以改更吗_thefist11的博客-程序员秘密

solidity的五个关键字修饰符, 以及它们的含义操作定义public公有,任何人(拥有以太坊账户的)都可以调用.private私有, 只有智能合约内部可以调用view/constant函数不会修改任何contract的数据,constant可以用于修饰常量和常函数。pure函数不使用任何智能合约的变量payable调用函数需要付钱,钱付给了智能合约的账户内部调用:调用同一合约中的函数内部调用对应 EVM 指令集中的 JUMP 指令,所以

无线cpe和ap的具体区别_Mr_Pmc的博客-程序员秘密

ap  AP就是传统有线网络中的HUB,也是组建小型无线局域网时最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网。  大多数的无线AP都支持多用户接入、数据加密、多速率发送等功能,一些产品更提供了完善的无线网络管理功能。对于家庭、办公室这样的小范围无线局域网而言,一般只需一台无线AP即可实现所有计算机的无线接入。  AP的室内覆盖范围一般是30m~100m,不少厂商的AP产品可以互联,以增加WLAN覆盖面积。也正因为每个A

关于_REENTRANT宏_liuyuan185442111的博客-程序员秘密

项目里定义了_REENTRANT宏,将其作为是否开启多线程的标志,一位老同志还告诉我,如果不定义_REENTRANT,pthread可能不是线程安全的。这种说法有点不符合直觉,所以查了下。Feature Test Macros:Macro: _REENTRANTMacro: _THREAD_SAFEThese macros are obsolete. They have the same effect as defining _POSIX_C_SOURCE with the value 1995

Microsoft Office 2000 Web 组件基础(转)_weixin_30470857的博客-程序员秘密

Microsoft Office 2000 Web 组件基础 适用于:Microsoft Office 2000摘要:本文讨论了从 Microsoft Excel 中发布 Microsoft Office Web 组件以及在如下环境中使用这些组件的方法:Microsoft Internet Explorer、Visual Basic 编辑器、Microsoft FrontPage 和 ...

ubuntu命令大全(技巧)一_weixin_33994429的博客-程序员秘密

ubuntu命令大全(技巧)一2009-06-29 09:43查看软件xxx安装内容#dpkg -L xxx 查找软件#apt-cache search 正则表达式查找文件属于哪个包#dpkg -S filename apt-file search filename查询软件xxx依赖哪些包#apt-cache dep...

shell中awk_AdleyTales的博客-程序员秘密

awk是处理文本文件的一个应用程序,非常方便。awk 动作 文件名awk '{print $0}' demo.txt # print是打印命令,$0代表当前行awk会根据空格和制表符,将每一行分成若干字段,依次用$1、$2、$3代表第一个字段、第二个字段、第三个字段等awk -F ':' '{ print $1 }' demo.txt参考https://www.ruanyifeng.com/blog/2018/11/awk.html...

随便推点

Jenkins+tomcat+gradle+SVN安卓 环境部署及遇到的一些问题_amiihanxiaoping的博客-程序员秘密

1、下载Jenkins 安装包 http://services.gradle.org/distributions/ 从这里下载比从官网 下载快很多,在Jenkins.war 所在目录执行java -jar Jenkins.war--httpPort=80 启动Jenkins服务,具体端口可以在 .Jenkins目录里配置,安装tomcat ,将Jenkins.war 放在tomcat的weba

url定位符_什么是URL(统一资源定位符)?_culun797375的博客-程序员秘密

url定位符When you type an address into your web browser, a lot of things happen behind the scenes. And most of that is determined by the various parts of the URL you typed. Let’s take a closer look. 当您在...

fx composer 的<> 尖括号_anfu8346的博客-程序员秘密

之前看了 cg和hlsl没听说过这种奇怪的东西 //////////////////////1pass GlowPass &lt; string Script= "RenderColorTarget0=;" "RenderDepthStencilTarget=;" "Draw=Buffer;"; &gt;/...

bash 提示_艾-小小雨的博客-程序员秘密

\a 铃声 \d 日期 \D{format} 指定日期格式 \e 空格键 \h 主机名 \H 主机名 \j 当前作业被shell管理 \l shell的终端设备名的基本名 \n 新行 \r 回车 \s shell的名称,$ 0的基本部分(以下最后的斜线部分) \t 显示当时时间HH:MM:SS格式(24小时

(模板)Floyd算法(多源最短路)_HumveeA6的博客-程序员秘密

最最最需要注意的就是因为每次是拿一个点出来考虑能否把别的路变短,所以k一定是最外层循环。以及要记得初始化为无穷大或无穷小。 可以通过检查是否有dis[i][i]&amp;lt;0来判定是否有负环存在int dis[105][105]; memset(dis,0x7f,sizeof(dis)); for(i=1;i&amp;lt;=n;i++) for(j=1;j&amp;lt;=n;...

题解 JZOJ 1349.连线游戏(lines)_alpha202的博客-程序员秘密

题目描述:Farmer John最近发明了一个游戏,来考验自命不凡的贝茜。游戏开始的时候,FJ会给贝茜一块画着N (2 &lt;= N &lt;= 200)个不重合的点的木板,其中第i个点的横、纵坐标分别为X_i和Y_i (-1,000 &lt;= X_i &lt;=1,000;-1,000 &lt;= Y_i &lt;= 1,000)。贝茜可以选两个点画一条过它们的直线,当且仅当平面上不存在...

推荐文章

热门文章

相关标签