redis-原理-对象-字符串对象-String(七)

说明

redis的字符串类型的编码可以是int raw 或者embstr

针对int类型

本地:0>object encoding msg
int

针对长度大于32的字符

使用SDS来存储

本地:0>set msg 32434234234234234324234324324332539342342reererersdf
OK

本地:0>object encoding msg
raw

 

 

 

 针对小于32位的字符串

采用embstr来存储 embstr将分配2次空间 优化成分配一次 embstr 跟raw不一样的是 embstr跟对象在一个结构里面,创建和释放都只需要操作一次

本地:0>set msg helloword
OK

本地:0>object encoding msg
embstr

 

 

好处分配内存row编码分配2次变为embstr的一次

回收的时候row编码需要调用2次回收函数变为embstr的一次

 

embstr本质是一块连续的内存空间

编码转换

前面说了,redis会根据不同场景使用不同编码来保证效率,如32位以下采用 embstr 32位以上采用raw编码 数值采用int编码 达到某种条件则会转换编码 比如int转换为embstr

操作字符串命令

 

 

 

 

posted @   意犹未尽  阅读(58)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示