美文网首页
Redis的简单动态字符串(一)

Redis的简单动态字符串(一)

作者: 无尘粉笔 | 来源:发表于2020-07-01 22:08 被阅读0次
355c20788565a40a3905c47785afe397.jpg

Redis没有直接使用C语言的传统字符串表示(以空字符结尾的字符数组)
当Redis需要的的不仅仅是一个字符串的面量,当修改字符串的值的时候。Redis通过SDS来表示字符串的值,(底层都是使用SDS实现的)
举个例子:

redis>set msg "hello world"
ok
redis>get msg
"hello world"

多个数据

redis>rpush msg "hello" "world"
(integer) 2
redis>LRANGE msg 0 -1
''hello"
"world"

redis将保存字符串msg的SDS。键值对的键 msg 值 为"hello"和"world"。

SDS的定义
每个sds.h/sdshdr结构表示一个sds值:

C语言和SDS之间的区别

  • c字符串: 获取字符串长度复杂度O(N)
  • SDS : 获取字符串长度复杂度O(1)
  • c字符串:API是不安全的,可能造成缓冲区溢出
  • SDS:API安全的,不会造成缓冲区溢出
  • c字符串:只能保存文本数据
  • SDS:可以保存文本或者二进制数据
  • c字符串: 可以使用所有的<string.h>
  • SDS:可以使用一部分<string.h>

相关文章

  • Redis简单字符串和链表底层实现及特性

    Sds (Simple Dynamic String,简单动态字符串) 简单动态字符串实现 Redis的简单动态字...

  • redis

    redis Redis 数据结构和底层实现string:简单动态字符串SDS,Redis 的字符串是动态字符串,是...

  • 数据结构与对象

    简单动态字符串 简单动态字符串(simple dynamic string,SDS),结构体非常简单 redis中...

  • Redis 数据结构之SDS

    Redis 数据结构之SDS 简单动态字符串 为了实现对于字符串的高效操作,Redis 自己构建的一种名为简单动态...

  • 【Redis5.X源码分析】系列之字符串

    引入简单动态字符串 简单动态字符串(Simple Dynamic String 简称SDS)是Redis为了高效安...

  • 聊一聊Redis之数据结构

    基本数据结构 简单动态字符串 Redis中的字符串使用“简单动态字符串”(SDS)表示,无论是字符串值还是键底层都...

  • 1.简单动态字符串

    简单动态字符串(simple dynamic string,SDS),Redis默认字符串表示。 一·、SDS定义...

  • Redis底层数据结构

    Redis底层数据结构类型 简单动态字符串(simple dynamic string)SDS Redis 没有直...

  • sds

    Sds (Simple Dynamic String,简单动态字符串)是 Redis 底层所使用的字符串表示, 几...

  • Redis-数据结构-SDS、链表

    一、简单动态字符串 SDS(simple dynamic string) 1、redis中使用SDS作为默认字符串...

网友评论

      本文标题:Redis的简单动态字符串(一)

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