UP | HOME

字符串

Table of Contents

REDIS_STRING 字符串 是 Redis 使用得最为广泛的数据类型, 它除了是 SET , GET 等命令的操作对象之外, 数据库中的所有 , 以及执行命令时提供给 Redis 的 参数 , 都是用这种类型保存的

编码

字符串类型分别使用 REDIS_ENCODING_INTREDIS_ENCODING_RAW 两种编码:

  • REDIS_ENCODING_INT 使用 long 类型来保存 long 类型值
  • REDIS_ENCODING_RAW 则使用 sdshdr 结构来保存 sds (也即是 char* ) , long long , doublelong double 类型值
换句话来说, 在 Redis 中, 只有能表示为 long 类型的值, 才会以整数的形式保存

其他类型的整数、小数和字符串, 都是用 sdshdr 结构来保存

graphviz-bb7ecaf3be8e729365b5a9241cdcb04aa5a709d1.svg

编码的选择

创建 的字符串默认使用 REDIS_ENCODING_RAW 编码, 在将字符串作为键或者值 保存 进数据库时, 程序会尝试将字符串转为 REDIS_ENCODING_INT 编码

字符串命令的实现

Redis 的字符串类型命令, 基本上是通过 包装 sds 数据结构 的操作函数来实现的, 没有什么需要说明的地方

Next:哈希表 Previous:对象处理机制 Home:数据类型