Redis笔记之字符串对象

2021-08-24  本文已影响0人  slxixiha

字符串对象的编码可以是int、embstr或者raw。

对象中不同类型的适用条件:

注:embstr与raw的区别在于把redisObject和sdshdr两块内存一次性合并申请,减少了内存的申请和释放操作次数,同时又利用上了空间局部性。

对象类型的结构图
对象类型的转换:

从一般来说都是沿着以下方向转换,也可以逆方向来优化

int <--> embstr <--> raw

但是embstr并未提供扩容操作,所以embstr一旦转换不管长度是多少,都会变成raw类型

127.0.0.1:6379> set pi 3.14
OK
127.0.0.1:6379> object encoding pi
"embstr"
127.0.0.1:6379> append pi "15"
(integer) 6
127.0.0.1:6379> get pi
"3.1415"
127.0.0.1:6379> object encoding pi
"raw"
上一篇下一篇

猜你喜欢

热点阅读