字符串对象有三种编码方式


第一种编码方式int
redis对象之字符串对象
第二种编码方式raw
redis对象之字符串对象
第三种编码方式embstr
redis对象之字符串对象


如果字符串对象保存的是一个字符串值,并且这个字符串值的长度小于等于39个字节,那么字符串对象将使用embstr编码的方式来保存这个值。

使用embstr编码的字符串对象来保存短字符串值有以下好处:

  1. embstr编码将创建字符串对象所需的内存分配次数从raw编码的二次降低为一次。
  2. 释放embstr编码的字符串对象只需要调用一次内存释放函数,而释放raw编码的字符串对象需要调用二次内存释放函数。
  3. embstr能够更好的利用缓存带来的优势。

    另外embstr编码的字符串对象没有对应的修改程序,所以任何embstr编码的字符串对象只要修改,就会自动转换编码为raw的。

相关文章: