【Redis】字符串原理--简单动态字符串SDS

一.SDS定义

  1. free 属性值为0,标识SDS没有分配任何未使用空间。
  2. len  属性值为5,标识SDS保存了一个5字节长度的字符串。
  3. buf  属性是一个char类型数组,数组的前5个字节保存了,'R' 'e' 'd' 'i' 's' 五个字符,最后一个保存空字符串  '\0'。

这个示例是 SDS为buf数组分配了五字节未使用空间,所以它的未使用空间值为5

二.SDS与C字符串的区别

序号C字符串SDS
1获取字符串长度的复杂度为 O(N)获取字符串长度的复杂度为 O(1)
2API是不安全的,可能会造成缓冲区溢出API是安全的,不会造成缓冲区溢出
3修改字符串长度N次必然需要执行N次的内存重分配

修改字符串长度N次最多需要执行N次内存重分配

  1.空间预分配

  2.惰性空间释放

4只能保存文本数据可以保存文本或者二进制数据(二进制安全)
5可以使用所有<string.h> 库中的函数可以使用一部分<string.h>库中的函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构篇33:传统的可扩展架构模式-分层架构和SOA

文章目录 分层架构SOA小结相比于高性能、高可用架构模式在最近几十年的迅猛发展来说,可扩展架构模式的发展可以说是步履蹒跚,最近几年火热的微服务模式算是可扩展模式发展历史中为数不多的亮点,但这也导致了现在谈可扩展的时候必谈微服务,甚至微服务架构都成了架构设计的银…

JAVA建造者模式详解

建造者模式 1 建造者模式介绍 建造者模式 (builder pattern), 也被称为生成器模式 , 是一种创建型设计模式. 定义: 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 **建造者模式要解决的问题 ** 建造者模式可以将部件和其组装过程分开…

Linux 查看系统信息 + 服务信息命令(简记)

概述 作用&#xff1a;Linux 运维工作中常用的命令速查 小步教程 (xiaobuteach.com) Linux 命令大全 | 菜鸟教程 (runoob.com) 文本编辑器vim 本章大纲 | 小步教程 vim 多文件编辑 | 小步教程 常用 ps 查看服务启动命令 Linux ps 命令 | 菜鸟教程 (runoob.com) # 查找…

第七讲:考试介绍与考纲解读

第七讲:考试介绍与考纲解读 考试介绍考试人群考试报名考试环境考纲解读选择题(40分)操作题(60分)小结本讲简介:终于,熬过了略微枯燥的基础课程,我们进入了二级考试训练阶段。在这讲中,我们将对全国计算机等级考试(66)Python 语言程序设计(二级)进行 360全方位无死…

微服务的幂等性

微服务架构设计的中心思想是将服务进行拆分&#xff0c;但是在这个过程中&#xff0c;如果被依赖的服务发生奔溃&#xff0c;就会引起一系列问题。为了解决这个问题&#xff0c;就会引入重试的机制&#xff0c;重试又会引入幂等性的问题&#xff0c;下面我们就分析这个过程&…

Java GC-常见垃圾回收器

目录 前言一、垃圾回收器分类二、垃圾回收器介绍1、Serial 收集器2、ParNew 收集器3、Parallel Scavenge 收集器4、Serial Old 收集器5、Parallel Old 收集器6、CMS 收集器&#xff08;多线程标记清除算法&#xff09;7、G1 收集器 三、项目中垃圾收集器选型 前言 Java的垃圾回…

乐意购项目前端开发 #7

一、购物车 本地购物车 创建cartStore.js文件 创建cartStore.js文件, 将购物车列表数据存在pinia中 import { ref, computed } from "vue"; import { defineStore } from "pinia"; import { useUserStore } from "./user"; import {insertCart…

PyTorch使用

前言 系统环境&#xff1a;win10 使用Anaconda&#xff0c;Anaconda的安装自行百度。 conda 23.7.4 目录 前言 创建虚拟环境 1、查看当前有哪些虚拟环境 2、创建虚拟环境pytorch 3、激活及关闭pytorch虚拟环境 4、删除pytorch虚拟环境 使用yolov5测试 1、切换至yolo…

飞天使-docker知识点14-docker安装mongodb

文章目录 拉取镜像创建目录配置文件mongo.conf启动命令 拉取镜像 docker pull mongo或你想要下载的版本创建目录 mkdir -p /data/mongo/conf/ mkdir -p /data/mongo/data/ mkdir -p /data/mongo/logs/useradd mongodb -s /usr/sbin/nologin cat /etc/passwd |grep mongodb mo…

Python 调用 OpenAI ChatGPT API

一、安装环境1. 安装python环境 $ pip install openai 2. 验证是否安装成功 方法1&#xff0c;bash命令验证 $ pip show openai 方法2&#xff0c;python脚本验证 import openai print(openai.__version__) 3. 找到你的 OpenAI API Key&#xff1a;进入OpenAI官网&#xff0…

绝对完美解决hdfs datanode数据和磁盘数据分布不均调整(hdfs balancer )——经验总结

Hadoop集群Datanode数据倾斜,个别节点hdfs空间使用率达到95%以上,于是新增加了三个Datenode节点,由于任务还在跑,数据在不断增加中,这几个节点现有的200GB空间估计最多能撑20小时左右,所以必须要进行balance操作。 通过观察磁盘使用情况,发现balance的速度明显跟不上新…

idea 快捷键ctrl+shift+f失效的解决方案

文章目录 搜狗输入法快捷键冲突微软输入法快捷键冲突 idea的快捷键ctrlshiftf按了没反应&#xff0c;理论上是快捷键冲突了&#xff0c;检查搜狗输入法和微软输入法快捷键。 搜狗输入法快捷键冲突 不需要简繁切换的快捷键&#xff0c;可以关闭它&#xff0c;或修改快捷键。 微…

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案 大家好 我是寸铁&#x1f44a; 总结了一篇Error: only one service expected goctl一键转换生成rpc服务错误解决方案的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题背景 今天寸铁在…

mysql脑裂原因及解决方法

MySQL这种关系型数据库&#xff0c;在高并发环境下&#xff0c;可能会出现脑裂问题。 一、MySQL脑裂的原因 MySQL脑裂是由于分布式系统中多个MySQL实例之间出现网络分区而导致的。具体来说&#xff0c;当网络分区发生时&#xff0c;不同的MySQL实例可能会在相同的时间内接收到…

IT工单治理野史:由每周最高150+治理到20+ | 京东物流技术团队

背景 相信不少人都值过班当过小秘吧&#xff0c;每天都要在线排查与解答各种各样来自IT或"单聊"的问题&#xff0c;同时还要针对每个问题进行"复盘"分析&#xff0c;在完善系统、提高体验的同时挖掘出其中的雷点&#xff0c;防止某一天突然"爆炸&quo…

飞天使-k8s知识点12-kubernetes散装知识点1-架构有状态

文章目录 k8s架构图有状态和无状态服务 资源和对象对象规约和状态 资源的对象-资源的分类 k8s架构图 有状态和无状态服务 区分有状态和无状态服务有利于维护yaml文件 因为配置不同资源和对象 命令行yaml来定义对象对象规约和状态 规约 spec 描述对象的期望状态状态 status 对…

机器学习基础、数学统计学概念、模型基础技术名词及相关代码个人举例

1.机器学习基础 &#xff08;1&#xff09;机器学习概述 机器学习是一种人工智能&#xff08;AI&#xff09;的分支&#xff0c;通过使用统计学和计算机科学的技术&#xff0c;使计算机能够从数据中学习并自动改进性能&#xff0c;而无需进行明确的编程。它涉及构建和训练机器…

【Spring】Spring 对 Ioc 的实现

一、Ioc 控制反转 控制反转是一种思想 控制反转是为了降低程序耦合度&#xff0c;提高程序扩展力&#xff0c;达到 OCP 原则&#xff0c;达到 DIP 原则 控制反转&#xff0c;反转的是什么&#xff1f; 将对象的创建权利交出去&#xff0c;交给第三方容器负责 将对象和对象之…

Angular BaseView抽离页面公用属性

前言 如果有一系列的页面布局很类似&#xff0c;为了节省时间&#xff0c;我们可以把这些类似的页面所通用的属性和方法抽离成一个BaseView&#xff0c;让其它页面继承该基础页面&#xff0c;同时将一些经常改变的属性和差异的属性写到配置文件里。例如树容器初始时是否展开、…

什么是前端工程化,请举例说明

前端工程化 前端工程化的定义为什么需要前端工程化前端工程化的核心概念 模块化开发&#xff1a;组件化开发&#xff1a;规范化开发&#xff1a;自动化开发&#xff1a;持续集成 前端工程化的主要工具前端工程化的应用总结&#xff1a; 前端工程化 前端工程化的定义 前端工程…