Redis支持的密钥类型

Ani*_*mar 2 redis

Redis支持哪些不同的密钥类型?文档提到了Redis支持的所有各种类型(字符串,集合,散列映射等),但我无法安静地找到密钥类型信息.

Igo*_*lla 8

从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.

根据我的经验,any binary sequence通常意味着String,但我可能不熟悉您可以通过使用其他数据类型实现此目的的语言.

  • 感谢您的摘录!这很有帮助。 (2认同)

tun*_*ned 6

Redis 中的键都是字符串,因此传递给客户端的值是什么类型并不重要。在后台使用 RESP 协议,它将值作为字符串传递给引擎。

例子:

ZADD some_key 1 some_value
Run Code Online (Sandbox Code Playgroud)

some_key始终是字符串,即使您3作为键传递,它也会作为字符串处理。这对每个客户都是如此。