本实例以Redis 4.0.1 为例,来演示使用Redis命令对字符串类型数据的操作。

SET 设置操作数据

1. 语法格式

设置数据,如果key存在就会覆盖
1
set key value [EX seconds] [PX milliseconds] [NX|XX]

2.可选参数

EX seconds -- 设置过期时间,单位秒 PX milliseconds -- 设置过期时间,单位毫秒 NX -- 只当key不在时候才设置 XX -- 知当key存在时候才设置

3.返回值

设置成功会返回"OK",否则会返回"nil"

4.示例

1
2
127.0.0.1:6379>set hello wolrd
"OK"

GET 查询数据###

1. 语法格式

1
get key

2.返回值

返回"key"所对应的"value",如果不存在则会返回"nil"。

3.示例

1
2
127.0.0.1:6379> get hello
"wolrd"

MGET 查询多条数据###

1. 语法格式

1
mget key [key ...]

2.返回值

指定键值的列表。

3.示例

1
2
3
4
5
6
7
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> set 1 2
OK
127.0.0.1:6379> mget a 1
1) "b"
2) "2"

SETNX 不覆盖设置###

1. 语法格式

setnx 是SET if Not eXists的缩写,及当key不存在的时候才会设置
1
setnx key value

2.返回值

如果设置成功返回"1",不成功返回"0"

3.示例

1
2
3
4
127.0.0.1:6379> setnx hello world
(integer) 0
127.0.0.1:6379> setnx hi wolrd
(integer) 1

SETEX 设置数据的有效期###

1. 语法格式

此方法和直接设置set key value ex xxx是一样的效果,单位秒
1
setex key seconds value

2.返回值

设置成功会返回"OK"

3.示例

1
2
3
4
5
6
127.0.0.1:6379> setex hi 10 wolrd
OK
127.0.0.1:6379> ttl hi
(integer) 8
127.0.0.1:6379> get hi
"wolrd"

PSETEX 设置数据的有效期###

1. 语法格式

此方法和SETEX 是一样的效果,只是单位是毫秒
1
psetex key milliseconds value

2.返回值

设置成功会返回"OK"

3.示例

1
2
3
4
127.0.0.1:6379> psetex hi-redis 10000 hi-dev
OK
127.0.0.1:6379> pttl hi-redis
(integer) 7305

MSET 设置多个key和value###

1. 语法格式

同时设置多个数据,与set方法类似,如果key存在就会覆盖。
1
mset key value [key value ...]

2.返回值

设置成功会返回"OK"

3.示例

1
2
3
4
5
6
7
8
127.0.0.1:6379> mset hello1 world1 hello2 wolrd2 hello3 wolrd3
OK
127.0.0.1:6379> get hello1
"world1"
127.0.0.1:6379> get hello2
"wolrd2"
127.0.0.1:6379> get hello3
"wolrd3"

MSETNX 不覆盖设置多个key和value###

1. 语法格式

同时设置多个数据,与setnx方法类似,如果key存在就不会覆盖。
1
msetnx key value [key value ...]

2.返回值

如果所有都设置成功则返回"1",如果有一个没有设置成功则返回"0"

3.示例

1
2
3
4
5
6
7
8
9
10
11
12
127.0.0.1:6379> msetnx hello3 wolrd3-new hello4 wolrd4
(integer) 0
127.0.0.1:6379> msetnx hello5 wolrd5 hello6 wolrd6
(integer) 1
127.0.0.1:6379> get hello3
"wolrd3"
127.0.0.1:6379> get hello4
(nil)
127.0.0.1:6379> get hello5
"wolrd5"
127.0.0.1:6379> get hello6
"wolrd6"

APPEND 追加内容###

1. 语法格式

如果key存在则会在value后面追加内容,如果不存在则会设置一条新的key和value数据
1
append key value

2.返回值

追加操作后的字符串长度。

3.示例

1
2
3
4
5
6
7
8
9
10
127.0.0.1:6379> exists nihao
(integer) 0
127.0.0.1:6379> append nihao redis
(integer) 5
127.0.0.1:6379> get nihao
"redis"
127.0.0.1:6379> append nihao 4
(integer) 6
127.0.0.1:6379> get nihao
"redis4"

STRLEN 获取数据的长度###

1. 语法格式

根据key获取value的长度,返回存储在value的字符串值的长度。
1
strlen key

2.返回值

如果key存在则返回value的长度,如果不存在则返回"0"

3.示例

1
2
3
4
5
6
7
8
127.0.0.1:6379> get nihao
"redis4"
127.0.0.1:6379> strlen nihao
(integer) 6
127.0.0.1:6379> exists nihao2
(integer) 0
127.0.0.1:6379> strlen nihao2
(integer) 0

DEL 删除指定的数据###

1. 语法格式

删除指定的键。 如果不存在,则忽略该键。
1
del key [key ...]

2.返回值

移除多少个value

3.示例

1
2
3
4
127.0.0.1:6379> exists hello1 hello2 hello8
(integer) 2
127.0.0.1:6379> del hello1 hello2 hello8
(integer) 2

GETSET 替换数据###

1. 语法格式

将新的key对应的value替换原来key对应的value
1
getset key value

2.返回值

返回原来key对应的value,如果原来key不存在,则返回"nil"

3.示例

1
2
3
4
5
6
7
8
127.0.0.1:6379> getset a b
(nil)
127.0.0.1:6379> get a
"b"
127.0.0.1:6379> getset a c
"b"
127.0.0.1:6379> get a
"c"

GETRANGE 范围取值###

1. 语法格式

根据给定的范围获取字符串的值,起始和结尾都是闭区间,下标以0开始。
1
getrange key start end

2.返回值

返回截取的字符串的值,如果不存在则返回空""

3.示例

1
2
3
4
5
6
127.0.0.1:6379> set mystr hello-wolrd
OK
127.0.0.1:6379> getrange mystr 0 3
"hell"
127.0.0.1:6379> getrange mystr 0 -1
"hello-wolrd"

SETRANGE 范围替换###

1. 语法格式

根据给定起始值,开始进行替换
1
setrange key offset value

2.返回值

该命令修改后的字符串的长度。

3.示例

1
2
3
4
5
6
127.0.0.1:6379> set mystr hello-world
OK
127.0.0.1:6379> setrange mystr 3 redis
(integer) 11
127.0.0.1:6379> get mystr
"helredisrld"