当前位置: 首页 > 面试题库 >

Redis密钥的命名约定和有效字符

西门马鲁
2023-03-14
问题内容

我想知道Redis密钥中哪些字符有效。我已经搜索了一段时间,找不到任何有用的信息。

像在Python中一样,有效的变量名称应属于class [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。



 类似资料:
  • 问题内容: Redis中密钥的正常命名约定是什么?我已经看到值之间有分隔符,但是我不确定正常的约定是什么,为什么? 对于用户,您会做类似… 如果用户的ID是 您是否可以仅查询密钥的开头以返回所有用户? 我主要是希望通过研究对人们有用的方式以及他们为什么选择它们的方式来避免将来出现任何问题。 问题答案: Redis中密钥的正常命名约定是什么?我已经看到了以:分隔的值,但是我不确定正常的约定是什么,或

  • 问题内容: 关键字名称,JavaScript对象或JSON字符串中是否有任何禁止的字符?还是需要转义的字符? 更具体地说,我想在键名中使用“ $”,“-”和空格。 问题答案: 否。任何有效的字符串都是有效的密钥。只要您能逃脱它,它甚至可以拥有: 在将此类值加载到某些语言(尝试将键与对象字段名称关联)时,您可能会遇到困难。我不知道有任何这样的情况。

  • 为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc

  • 在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在

  • 函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu

  • 问题内容: 是否有Redis命令用于获取数据库中的所有密钥?我已经看到一些python-redis库正在获取它们。但是我想知道从redis-client是否有可能。 问题答案: 尝试看一下命令。将列出存储在redis中的所有密钥。 编辑: 请注意文档页面顶部的警告: 时间复杂度: O(N),其中N为数据库中密钥的数目,假设数据库中的密钥名称和给定模式的长度有限。 UPDATE(V2.8或更高版本)