美文网首页
Redis--SDS

Redis--SDS

作者: 简书徐小耳 | 来源:发表于2019-04-10 00:02 被阅读0次

SDS

申明:我们说的键一般指的是redis的key和value,字符串键指的是Value是字符串的,而key,基本上都是字符串形式

SDS使用范围

  • 1.字符串键

SDS的组成

  • 1.int len:buf数组中已经使用的字节数量。
  • 2.int free:buf数组中未使用字节的数量。
  • 3.char buf[]:字节数组,用于保存字符串。也可以保存字节

传统字符串的缺点

  • 1.是以空字符(\0)结尾。
  • 2.如果需要频繁修改字符串,则需要重新生成字符串,这样就需要释放以前字符串的内存,再开辟新的内存。
  • 3.无法常数复杂度获取字符串长度。
  • 4.容易缓冲溢出(因为未获取字符串长度,存储的缓冲太长导致溢出)
  • 5.字符串中的字符必须符合某种编码,并且除了结尾空字符,中间任何部分不能包含空字符。因而只能保持文本数据,对于图片等二进制数据无法保存。

SDS的优点

  • 1.可以作为数据库中字符串值
  • 2.可以作为缓冲区,比如AOF的缓冲区和客户端状态的输入缓冲区
  • 3.遵循结尾也是空字符的好处是可以直接重用一部分c字符串函数库里面的函数。
  • 4.设置和更新SDS的工作是有SDS的函数自动完成
  • 5.空间预分配和惰性空间释放
  • 6.可以在字符串除了尾部之外出现空字符。
  • 7.SDS的API 都会以处理二进制的方式来处理存放在buf数组里面的数据,因此可以保存文本之外的数据。

相关文章

  • Redis--SDS

    SDS 申明:我们说的键一般指的是redis的key和value,字符串键指的是Value是字符串的,而key,基...

网友评论

      本文标题:Redis--SDS

      本文链接:https://www.haomeiwen.com/subject/ujtgiqtx.html