我想知道在Redis键中哪些字符被视为有效字符。我已经搜索过一段时间,但找不到任何有用的信息。
与Python中的变量名类似,有效的变量名应属于类[a-zA-Z0-9_]
。Redis键的要求和惯例是什么?
我想知道在Redis键中哪些字符被视为有效字符。我已经搜索过一段时间,但找不到任何有用的信息。
与Python中的变量名类似,有效的变量名应属于类[a-zA-Z0-9_]
。Redis键的要求和惯例是什么?
这部分问题的答案已经在这里得到解答,但并不完全重复,因为你不仅问了允许使用哪些字符,还问了命名规范。
至于Redis键中有效的字符,手册中完整地解释了这一点:
Redis键是二进制安全的,这意味着可以使用任何二进制序列作为键,从一个字符串“foo”到JPEG文件的内容。空字符串也是一个有效的键。
关于键的其他几条规则:
非常长的键不是一个好主意,比如一个1024字节的键不仅从内存的角度来看是个坏主意,而且在数据集中查找该键可能需要多次昂贵的键比较。即使任务是匹配大值的存在,也最好采用散列它(例如使用SHA1),特别是从内存和带宽的角度来看。
非常短的键通常不是一个好主意。如果你可以写“user:1000:followers”,那么写“u1000flw”作为键就没有多少意义了。前者更易读,添加的空格相对于键对象本身和值对象使用的空间来说很小。虽然短键显然会消耗更少的内存,但你的工作是找到正确的平衡。
尽量坚持一种模式。例如,“object-type:id”是一个好主意,如“user:1000”。点或连字符通常用于多词字段,如“comment:1234:reply.to”或“comment:1234:reply-to”。
允许的最大键大小为512 MB。
SET some key my value
将无法工作,而SET "some key" "my value"
将能够工作。 - j boschiero