Redis 的五种基本数据类型【String】
流量如水,文章就是一个瓶子,标题是瓶口,内容是瓶身。 瓶子装水有多快依赖瓶口大小,瓶子装水有多少依赖瓶身大小。
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 的长度