面试题答案
一键面试- int编码:
- 适用场景:当字符串对象保存的是整数值,且这个整数值可以用
long
类型(一般为64位有符号整数)来表示时,Redis会使用int
编码。这种编码方式存储效率高,占用空间小,例如保存用户ID、计数器等数值场景。
- 适用场景:当字符串对象保存的是整数值,且这个整数值可以用
- embstr编码:
- 适用场景:当字符串对象保存的是长度小于等于39字节的字符串时,Redis会使用
embstr
编码。embstr
编码将对象头和字符串内容连续存储在一块内存中,减少内存碎片,提高内存利用率和访问效率,常用于存储较短的字符串,如短文本、短的键值对等。
- 适用场景:当字符串对象保存的是长度小于等于39字节的字符串时,Redis会使用
- raw编码:
- 适用场景:当字符串对象保存的字符串长度大于39字节时,Redis会使用
raw
编码。raw
编码方式适合存储较长的字符串,如文章内容、较大的JSON字符串等。这种编码方式在处理大数据时更灵活,但相比embstr
可能会产生更多内存碎片。
- 适用场景:当字符串对象保存的字符串长度大于39字节时,Redis会使用