美文网首页
Redis' strings

Redis' strings

作者: GrooveWind | 来源:发表于2017-02-28 15:52 被阅读0次

Redis字符串基本操作命令

命令 行为
GET 获取给定建对应的值
SET 设置给定建对应的值
DEL 删除给定建对应的值
INCR 值+1
DECR 值-1
INCRBY 值+N N为整数
DECRBY 值-N N为整数
INCRBYFLOAT 值+N N为浮点数

底层实现

Redis中,字符串对象是一个基础对象,所有键值均是字符串对象。Redis自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。
SDS的结构体表示为:
struct sdshdr { int len; int free; char buf[]; };
其中len属性记录buf数组中已使用字节的数量,free则记录buf数组中未使用字节的数量,buf数组本身则存储字符中的字节。
SDS遵循C字符串以空字符结尾的惯例,保存空字符的1字节空间,不计入len属性中

SDS的优势

  • 获取字符串长度代价小,时间复杂度仅为O(1),而C字符串则为O(N)
  • 防止缓冲区溢出,可以检查内存空间容量,并自动扩容
  • 减少改变buf数组的长度时带来的内存重分配次数(预分配与惰性空间释放)
  • 二进制安全(SDS通过len属性判断字符串是否结束,而不是空字符)
  • 兼容部分C字符串API

相关文章

  • Redis' strings

    Redis字符串基本操作命令 底层实现 Redis中,字符串对象是一个基础对象,所有键值均是字符串对象。Redis...

  • Redis 选择hash还是string 存储数据?

    看到一个问题,Redis strings vs Redis hashes to represent JSON: e...

  • Go-Redis

    Redis支持的数据结构 Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集...

  • Redis命令:Strings

    Strings是Redis支持的最简单数据类型,以下按照SET/GET、INCR/DECR、BIT 3种分类介绍字...

  • redis常用命令

    以下为redis的一些常用命令,供自己学习记忆使用。 Redis keys命令 Redis strings命令 R...

  • redis 常见命令

    redis数据结构 – strings 有人说,如果只使用redis中的字符串类型,且不使用redis的持久化功能...

  • Redis数据结构解析

    本文源码解析部分内容摘自《Redis设计与实现》 Redis数据结构 字符串(Strings) 列表(Lists)...

  • Redis学习-string类型

    redis就是一个存储key-value键值对的仓库。 Redis的数据类型:Strings、Hashs、List...

  • 110Redis 简明教程--Redis 数据类型

    Redis strings 字符串是一种最基本、最常用的 Redis 值类型。Redis 字符串是二进制安全的,这...

  • redis数据结构常用指令

    【redis数据结构 – strings】 INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis...

网友评论

      本文标题:Redis' strings

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