redis学习笔记(2)string类型

1、概述

  1. String 是 Redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
  2. String 类型是二进制安全的。意味着 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
  3. String 类型是 Redis 最基本的数据类型,一个 Redis 中字符串 value 最多可以是 512M。

2、string类型的相关操作

  • set key value---------key赋值为value,key不存在则生成,存在则覆盖(相当于更新)
  • setnx key value--------key赋值为value(只有key不存在才成功,避免被覆盖),返回integer,1-设置成功,0-设置失败
  • setex key seconds value---------key赋值为value,并设置过期时间(s)
  • mset key value [key value …]--------同时设置一个或多个key的值
  • append key value-----------key追加值,返回value长度,从1开始
  • incr key----------将key中存储的数字值加一,并返回结果值
  • incrby key increment----------将key中存储的数字值加上指定值(increment),并返回结果值
  • decr key------------将key中存储的数字减一,并返回结果值
  • decrby key decrement--------------将key中存储的数字值减去指定值(decrement),并返回结果值
  • get key-------------------返回key值
  • MGET key [key…]--------------获取给定(一个或多个)key的值
  • getrange key start end----------key中value的子字符串,从0开始
  • strlen key-----------key的value长度,从1开始

3、数据结构

String 的数据结构为简单动态字符串 (Simple Dynamic String, 缩写 SDS),是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.

        

如图中所示,内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。

参考:Redis | ZC 的学习录 (zhangc233.github.io)

 

posted @ 2022-04-30 14:52  ☞@_@  阅读(35)  评论(0编辑  收藏  举报