Redis 的五种基本数据类型【String】

流量如水,文章就是一个瓶子,标题是瓶口,内容是瓶身。 瓶子装水有多快依赖瓶口大小,瓶子装水有多少依赖瓶身大小。

String 类型

  • String 是 redis 里边最简单的一种数据结构,在 redis 中,所有的 key 都是字符串,但是不同的 key 对应的 value 则具备不同的数据结构,我们所说的五种不同的数据类型,主要是指 value 的数据类型不同。
  • redis 中的字符串是动态字符串,内部是可以修改的,像 Java 中的 StringBuffer,它采用分配冗余空间的方式来减少内存的频繁分配,在 redis 内部结构中,一般实际分配的内存会大于需要的内存,当字符串小于 1M 的时候,扩容都是在现有的空间基础上加倍,扩容每次扩 1M 空间,最大 512M。

1. set 指令

set 就是给一个 key 赋值的。
在这里插入图片描述

2. append 指令

使用append命令时,如果 key 已经存在,则直接在对应的 value 后追加值,否则就创建新的键值对。
在这里插入图片描述

3. decr 指令

可以实现对 value 的减1操作(前提 value 是一个数据),如果 value 不是数字,会报错,如果 value 不存在,则会给一个默认值为 0,在默认值的基础上减 1。
在这里插入图片描述
在这里插入图片描述

4. decrby 指令

和 decr 类似,但是可以自己设置步长。此命令的第二个参数就是步长。
在这里插入图片描述

5. get 指令

get 用来获取一个 key 的 value。
在这里插入图片描述

6. getrange 指令

getrange 可以用来返回 key 对应的 value 的字串,这有点类似于 Java 里边的 substring。该命令的第二和第三参数分别代表了截取的起始和结束的位置,其中 -1 表示最后一个字符串,-2 表示倒数第二个字符串,以此类推…
在这里插入图片描述

7. getset 指令

getset 获取并更新某一个 key
在这里插入图片描述

8. incr 指令

incr 给某一个 key 的 value 自增
在这里插入图片描述

9. incrby 指令

incrby 给某一个 key 的 value 自增,同时还可以设置步长。
在这里插入图片描述

10. incrbyfloat 指令

incrbyfloat 和 incrby 类似,但是自增的步长可以设置为浮点数。
在这里插入图片描述

11. mget 和 mset 指令

mget 为批量获取
mset 为批量存储
在这里插入图片描述

12. ttl 指令

ttl 查看 key 的有效期
在这里插入图片描述

13. setex 指令

setex 在给 key 设置 value 的同时,还可以设置过期时间
在这里插入图片描述

14. psetex 指令

psetex 和 setex 类似,只不过这里的时间单位是毫秒
在这里插入图片描述

15. setnx 指令

setnx 默认情况下,set 命令会覆盖已经存在的 key,setnx 则不会覆盖
在这里插入图片描述

16. msetnx 指令

msetnx 批量设置,和setnx类似,对已经存在的 key 不会覆盖(如果一个设置不成功,则都会失败)
在这里插入图片描述

17. setrange 指令

setrange 覆盖一个已经存在的 key 的 value (如果你要覆盖的字符串超过原来的 key 长度,则视为追加)
在这里插入图片描述

18. strlen 指令

strlen 用于查看 key 的长度
在这里插入图片描述

发布了53 篇原创文章 · 获赞 336 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43647359/article/details/105536473