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
操作字符串命令
标签:
redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!