zoukankan      html  css  js  c++  java
  • 《redis 5设计与源码分析》:第二章 简单动态字符串

    介绍

    简单动态字符串(Simple Dynamic Strings, SDS)是Redis的基本数据结构之一,用于存储字符串和整型数据。它的特点是:方便扩容、二进制安全。

    二进制安全
    在C语言中,用""表示字符串结束,如果字符串本身有""字符,字符串就会被阶段,即非二进制安全;通过某种手段,避免读写字符串时被截断,则是而二进制安全

    结构体设计

    SDS的结构体大致为

    struct sds {
        int len; // buf中已占用字节数
        int free; // buf中剩余可用字节数
        char buf[]; // 数据空间
    }
    

    实际存储结构为

    在64位系统下,字段len和字段free各占4个字节,紧挨着存放字符串。

    设计优点

    1.使用len字段统计存储长度,读写字符串是不依赖终止字符"",保证了二进制安全。

    2.数据空间使用柔性数组,大大提升数据空间使用率。

  • 相关阅读:
    mongo的常用操作——增删改查
    配置我的sublime
    mongo概念
    mongo命令
    mongo安装与配置
    node搭建http基本套路
    模块的导出入
    vue数据绑定原理
    webpack打包速度优化
    工作中的优化之数字键盘优化
  • 原文地址:https://www.cnblogs.com/Zioyi/p/14259025.html
Copyright © 2011-2022 走看看