我想知道哪些字符在Redis密钥中被认为是有效的。我用谷歌搜索了一段时间,找不到任何有用的信息。
与Python类似,有效变量名应属于类[a-zA-Z0-9_]
。 Redis密钥有哪些要求和约定?
答案 0 :(得分:87)
部分内容已经回复here,但这并不完全重复,因为您要询问允许的字符和约定。
至于Redis键中的有效字符,the manual explains this completely:
Redis键是二进制安全的,这意味着你可以使用任何二进制序列作为键,来自像#34; foo"到JPEG文件的内容。空字符串也是有效密钥。
关键的一些其他规则:
很长的密钥不是一个好主意,例如1024字节的密钥不仅是内存方面的坏主意,而且因为在数据集中查找密钥可能需要几次昂贵的密钥比较。即使手头的任务与大值的存在相匹配,采用散列(例如使用SHA1)也是一个更好的主意,特别是从内存和带宽的角度来看。
非常短的键往往不是一个好主意。写作没有什么意义" u1000flw"作为一个关键,如果你可以写#34;用户:1000:粉丝"。与密钥对象本身和值对象使用的空间相比,后者更具可读性,并且添加的空间较小。虽然短按键显然会消耗更少的内存,但您的工作就是找到合适的平衡点。
尝试坚持使用架构。例如" object-type:id"是一个好主意,如" user:1000"。点或短划线通常用于多字词字段,如"评论:1234:reply.to"或者"评论:1234:回复"。
允许的最大密钥大小为512 MB。