redis小试牛刀01

简单动态字符串(SDS):simple dynamic string,C字符串最后多一个空字符,SDS比C字符串更适合redis

优点:1)C字符串长度要遍历,长度复杂度为O(n),SDS直接记录字符串长度,长度复杂度为O(1)

2)由于C字符串不记录字符串长度,易造成溢出,SDS空间分配策略完全杜绝缓冲区溢出的可能,因为在修改以前已经自动扩展至所需的大小

3)C字符串修改字符串长度可能造成内存溢出或者泄露,修改N次长度必须执行N次内存重新分配,SDS通过使用未使用空间解除了字符串长度和底层数据长度之间的关联,主要实现了空间预分配和惰性空间释放两种优化策略,修改N次长度最多执行N次内存重新分配

4)C字符串只能保存文本数据,SDS可以保存文本或者二进制数据

5)C字符串可以使用所有<string.h>库中的函数,SDS可以使用一部分<string.h>库中的函数

for example:set a a/rpush animal "chicken" "dog" "cat"

参考黄健宏老师的《Redis设计与实现》

时间: 2024-10-19 02:19:37

redis小试牛刀01的相关文章

redis 笔记01

文中内容摘自<redis设计与实现> 简单动态字符串 1. redis自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示 2. SDS属性: 1). free : 未使用的空间 2). len : 已保存字符串的长度 3). buf : char类型数组,字符串保存的内容,最后一个字节是一个空字符'\0' 3. SDS遵循C字符串以空字符串结尾的惯例,保存空字符的1字节空间不计算在SDS的len属性里面.遵

redis系列01:源码安装redis-3.2.10

前段时间安装好的redis,今天用脚本安装的时候突然出现版本异常的问题,所以更新一篇为大家提供参考 本次安装在CentOS6.5,采用的redis-3.2.10,最新的redis-4.0.1安装同样适用,不过由于4.0.1版本的redis改动较大,大家自己选择即可., 1.基础环境配置,上传安装包 useradd redis -s /sbin/nologin -M mkdir -p /server/tools/ cd /server/tools/ 2.安装redis,配置开机自启动 # 解压,编

Redis教程01安装Redis

一 什么是Redis? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是一个高性能的Key-Value数据库. Key Value key1 value1 key2 value2 二 Redis 特点 1.内存数据库 所有数据存于内存中,避免了缓慢的磁盘I/O. 备份数据是,将数据写入文件: RDS, AOF. 2.丰富的数据类型 String List Set Sorted Set 3. 操

Redis教程01——命令

APPEND key value追加一个值到key上 AUTH password验证服务器 BGREWRITEAOF 异步重写追加文件 BGSAVE 异步保存数据集到磁盘上 BITCOUNT key [start] [end]统计字符串指定起始位置的字节数 BITOP operation destkey key [key ...]Perform bitwise operations between strings BLPOP key [key ...] timeout删除,并获得该列表中的第一元

redis初识01

一.Redis简介 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个key-value存储系统. 1.2 Redis优点 性能极高 – Redis能支持超过 100K+ 每秒的读写频率. 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作. 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行. 丰富的特性 –

Redis学习01

Redis是一个基于内存的轻量级键值数据库(key-value database): 官网:https://redis.io/ 下载页面:https://redis.io/download 当前稳定版本:4.0.11 Docker镜像地址:https://hub.docker.com/r/library/redis/ 一.下面介绍Docker环境安装Redis 1. 下载镜像 $ docker pull redis:4.0.11 2. 启动redis p.p1 { margin: 0.0px 0

Redis系列---redis简介01

一. 本章我们将用简短的几句话来帮助你快速的了解什么是redis,初学者不必深究 1 Redis简介 Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写.支持网络.基于内存亦可持久化的日志型.key-value数据库,并提供多种语言的API 它通常被称为数据结构服务器,因为值value可以是字符串String,哈希Map,列表list,集合set和有序集合sorted set等类型 2 Redis特点 2.1优点: 1.支持多种数据结构,如 Str

互联网公司面试经常会问的Redis题目

Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用到.Redis相关的问题可以说是面试必问的,下面我从个人当面试官的经验,总结几个必须要掌握的知识点.(知识点较多,我整理了个思维导图,后台回复redis,发送给你) 介绍:Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的 API的非关系型数据库.传统数据库遵循 ACID 规则.而 Nosql(Not On

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli