1、概述
字符串结构,其实是Redis中最基础的K-V结构。其键和值都是字符串。类似Java的
Map<String,String>
2、常用命令
以下命令都是用来操作字符串 的键值数据:
序号 | 命令描述 | 描述 |
---|---|---|
1 | SET key value | 设置指定 key 的值 |
2 | GET key | 获取指定 key 的值 |
3 | GETRANGE key start end | 返回 key 中字符串值的子字符 |
4 | INCR key | 将 key 中储存的数字值增一 |
5 | INCRBY key increment | 将 key 所储存的值加上给定的增量值(increment) |
6 | DECR key | 将 key 中储存的数字值减一 |
7 | DECRBY key decrement | key 所储存的值减去给定的减量值(decrement) |
8 | APPEND key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾 |
9 | STRLEN key | 返回 key 所储存的字符串值的长度 |
10 | MGET key1 [key2..] | 获取所有(一个或多个)给定 key 的值 |
11 | MSET key value [key value …] | 同时设置一个或多个 key-value 对 |
3、GET和SET(添加和查)
- 基本语法:
- 示例:
4、INCR和INCRBY(数字自增)
INCR 命令将 key 中储存的数字值增一。
语法:
示例:
- 当key没有值时:(先初始化为0,再+1)
- 当key有值,并且也是数值:(直接值+1)
- 当key有值,但是不是数值形式:(会报错)
- 当key没有值时:(先初始化为0,再+1)
- 注意:
1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
3)数字值在Redis中以字符串保存
INCRBY与INCR命令基本类似, INCRBY命令将 key 中储存的数字加上指定的增量值。
- 语法:
- 示例:
5、DECR和DECRBY(数值自减)
看名字就知道,这两个与上面的INCR和INCRBY相反的操作,减少key的值
Decr 命令将 key 中储存的数字值减一。
- 语法:
- 示例:
- 对不存在的key操作:
- 对已存在的key操作:
- 对不存在的key操作:
- 注意:
1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
3)数字值在Redis中以字符串保存
Decrby 命令将 key 所储存的值减去指定的减量值。
- 语法:
- 示例:
6、APPEND(追加数据)
Append 命令用于为指定的 key 追加值。
1)如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
2)如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
- 语法:
APPEND key value - 返回值:
追加指定值之后, key 中字符串的长度。 - 示例:
- 操作一个不存在的key
- 操作一个已经有值的key
- 操作一个不存在的key
7、STRLEN(字符串长度)
Strlen 命令用于获取指定 key 所储存的字符串值的长度。
- 语法:
STRLEN key - 返回值:
key的值字符串长度,如果key不存在,返回0 - 示例:
8、MSET和MGET(批量添加和获取)
Mset 命令用于同时设置一个或多个 key-value 对。
- 语法:
MSET key1 value1 key2 value2 … keyN valueN
Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
- 语法:
MGET KEY1 KEY2 .. KEYN - 示例: