【愚公系列】2022年05月 .NET架构班 046-分布式中间件 Redis存储原理之string

【愚公系列】2022年05月 .NET架构班 046-分布式中间件 Redis存储原理之string,第1张

文章目录
  • 前言
    • 1.SDS概念
  • 一、Redis存储原理之string
    • 1. string结构
    • 2.string编码类型
    • 3.应用场景
    • 4.相关 *** 作命令


前言 1.SDS概念

Redis中字符串的实现,Simple Dynamic String简单动态字符串,是一数据结构。

Redis是用C语言实现的,但C语言本身没有字符串类型(只能用字符数组 char[]实现)。所以就会有以下问题:

  • 使用字符数组必须先给目标变量分配足够的空间,否则可能会溢出。
  • 如果要获取字符长度,必须遍历字符数组,时间复杂度是 O(n)。
  • C 字符串长度的变更会对字符数组做内存重分配。

通过从字符串开始到结尾碰到的第一个’\0’来标记字符串的结束,因此不能保 存图片、音频、视频、压缩文件等二进制(bytes)保存的内容,二进制不安全。

而SDS的特点:

  • 不用担心内存溢出问题,如果需要会对SDS进行扩容。
  • 获取字符串长度时间复杂度为 O(1),因为定义了len属性。
  • 通过“

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/867747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存