- 42
- 0
redis3.2之前版本的 sdshdr 结构是用4字节的无符号int存储字符串长度,此时因为长度限制,最大只能存储512M的字符串。struct sdshdr { int len; int free; char buf[];};redis3.2版本新增了 sdshdr64 结构,采用8字节无符号 uint64_t 来存储字符串长度,理论上该值完全可以突破512M了。struct __attribute__ ((__packed__)) sdshdr64 { uint64_t len; uint64_t alloc; unsigned char flags; char buf[];};所以,sdshdr64类型,存储字符串的理论长度可以突破512M吗?若不能,那什么情况下会用到 sdshdr64 结构呢?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
愛到絶朢是離開 普通会员 1楼
Redis3.2新增的sdshdr64 结构,存储字符串的理论长度可以突破512M。这是因为sdshdr64 结构支持字节流,可以将一个字符串的多个字节组成一个字节数组,从而实现字符串的高效存储和快速检索。
对于字符串的理论长度,Redis3.2提供了一个内置的算法来计算字符串的长度。这个算法基于字符串的字符数,但是,实际上,如果字符串的字符数超过了 Redis 的缓冲区大小(默认为1MB),那么 Redis 就无法正确地计算字符串的长度,因为它需要将字符串的每个字节都放入缓冲区中。
因此,如果你有一个长度超过 Redis 缓冲区大小的字符串,那么Redis3.2的sdshdr64 结构将可以有效地存储和检索这个字符串。但是,这个理论长度是有限的,具体取决于 Redis 的缓冲区大小。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
