007、Redis的字符串(string)数据类型的应用场景
本文最后更新于 65 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

Redis的字符串(string)数据类型的应用场景

一.字符串的新增指令

1.使用"SET"指令为KEY设置新值,并覆盖原有值

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *

127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SET name JasonYin  # 注意哈,此处我们是第一次为name这个KEY赋值。
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SET name oldboyedu  # 注意哈,此处我们是第二次为name这个KEY赋值,这意味着我们会为KEY设置新值,并覆盖原有值
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
oldboyedu
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

2.使用"GETSET"指令为KEY设置新值,并取出原有值,若该KEY原来并不存在,则取空值

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GETSET age 18  # 为KEY设置新值,并取出原有值,若该KEY原来并不存在,则取空值。

127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> get age
18
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GETSET age 28  # 为KEY设置新值,并取出原有值18。
18
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> get age
28
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

3.使用"SETEX"指令设置指定KEY时,我们可以为KEY指定过期时间,在KEY的生命周期存活期间,我们是可以取出该KEY对应的数据

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SETEX address 30 BeiJing  # 设置指定KEY时,我们可以为KEY指定过期时间,在KEY的生命周期存活期间,我们是可以取出该KEY对应的数据。
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
address
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address  # 查看address对应KEY的剩余生命周期时间
22
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET address  # 在KEY的有效生命周期内,我们是可以获取数据的。
BeiJing
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
15
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
address
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
6
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET address
BeiJing
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
0
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET address

127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
-1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> get name
oldboyedu
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SETEX name 20 JasonYin  # 很明显,尽管KEY之前已经存在,我们也是可以在为其设置新值的同时设置过期时间哟~
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> get name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
11
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

4.使用"SETNX"指令设置的KEY,若该KEY不存在,则为KEY设置新值,若该KEY已经存在了,则不做任何操作。

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SETNX name JasonYin  # 若设置的KEY不存在,则为KEY设置新值,若该KEY已经存在了,则不做任何操作。
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SETNX name oldboyedu  # 很明显,由于name这个KEY已经存在了,因此本次赋值是失败的!
0
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

5.使用"MSET"指令批量设置KEY

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> KEYS *

127.0.0.1:6379[11]> MSET id 5201 name JasonYin age 27 gender male address BeiJing  # 批量设置KEY
OK
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> KEYS *
age
id
gender
address
name
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE id
string
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE name
string
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE age
string
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE gender
string
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE male
none
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> TYPE address
string
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 

二.字符串的查找指令

1.使用"GET"指令获取指定KEY对应的value数据

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET age
28
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

2.使用"EXISTS"指令判断该键是否存在,存在返回1,否则返回0

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> EXISTS age
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> EXISTS name
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> EXISTS address
0
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

3.使用"STRLEN"指令获取指定KEY的字符长度

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET age
28
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> STRLEN name
8
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> STRLEN age
2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

4.使用"GETRANGE"指令截取指定的字符

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> SET blog https://www.cnblogs.com/oldboyedu/
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET blog
https://www.cnblogs.com/oldboyedu/
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> STRLEN blog
36
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GETRANGE blog 0 5  # 截取从字符串下标0-5指定的字符,字符串默认的下标是从0开始的。
https:
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GETRANGE blog 8 22  # 截取从字符串下标8-22指定的字符,字符串默认的下标是从0开始的。
www.cnblogs.com
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GETRANGE blog 24 34  # 经过这三个例子不难发现,GETRANGE获取KEY的起始和结束下标位置都是包含的哟~
oldboyedu
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

5.使用"MGET"指令批量获取KEY对应的VALUE值

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET age
28
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
JasonYin
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET blog
https://www.cnblogs.com/oldboyedu/
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> MGET name age blog
JasonYin
28
https://www.cnblogs.com/oldboyedu/
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

6.使用"TTL"指令获取指定Key的剩余存活秒数时间,若为-1说明永不过期,若为-2说明KEY已经过期被自动清除(换句话说,就是KEY不存在了)。

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SET hobby LOL
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
name
hobby
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL hobby  # 很明显,如果我们没有为KEY设置过期时间,其默认值为-1
-1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SETEX address 30 BeiJing
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
address
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
23
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
11
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address
2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address  # 如果我们设置的KEY已经达到了过期时间,他会自动删除,且再次查看该KEY的过期时间为-2
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL address 
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

7.使用"PTTL"指令获取指定Key的剩余存活毫秒数时间,若为-1说明永不过期,若为-2说明KEY已经过期被自动清除(换句话说,就是KEY不存在了)。

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name  # 当前name的KEY未设置过期时间
-1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PEXPIRE name 30000  # 我们手动设置name的KEY过期时间为30000毫秒(即30秒)
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name  # 查看名为name的KEY剩余生命周期对应的毫秒数。
27614
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
24735
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
20894
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
18
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
14
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> TTL name
12
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
9976
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
6110
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
1657
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> PTTL name
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

三.字符串的修改指令

1.使用"APPEND"指令往KEY中追加数据,若KEY并不存在,返回当前Value的长度,若该KEY已经存在,返回追加后Value的长度

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
hobby
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> APPEND name "hello"  # 很明显,名为name的KEY并不存在,因此返回的长度为当前数据的长度。
5
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
hello
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> APPEND name "world"  # 由于名为name的KEY已经存在,因此返回的长度为追加后数据的长度哟~
10
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET name
helloworld
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

2.使用"INCR"指令让KEY自动加1,若该key不存在,则会自动创建key并让其初始值设为0,加1后结果为1。

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR count  # 若该key不存在,则会自动创建key并让其初始值设为0,加1后结果为1。
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR count
2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR count
3
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET count
3
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> SET stars 10000  # 此处我们创建一个KEY,让其默认值为1w。
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR stars
10001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR stars
10002
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCR stars
10003
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
10003
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

3.使用"DECR"指令让KEY自动减1,若该key不存在,则会自动创建key并让其初始值设为0,减1后结果为-1。

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECR number  # 若该key不存在,则会自动创建key并让其初始值设为0,减1后结果为-1。
-1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECR number
-2
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECR number
-3
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
number
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET number
-3
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
10003
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECR stars
10002
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECR stars
10001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
10001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

4.使用"INCRBY"指令让KEY加上一个自定义的数字

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
number
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
10001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> INCRBY stars 50000  # 对KEY直接加5w。
60001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
60001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

5.使用"DECRBY"指令让KEY减去一个自定义的数字

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
number
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
60001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DECRBY stars 30000  # 让KEY直接减去3w。
30001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> GET stars
30001
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

6.使用"SETRANGE"指令替换自定的子串

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> SET blog https://www.cnblogs.com/oldboyedu/
OK
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> KEYS *
blog
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> get blog
https://www.cnblogs.com/oldboyedu/
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> STRLEN blog
36
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> SETRANGE blog 35 2020  # 从name字符串的索引为35(对应字符"/")开始,使用"2020"字符穿将其覆盖替换后续的字符。
39
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> STRLEN blog
39
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> get blog
https://www.cnblogs.com/oldboyedu2020
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> SETRANGE blog 8 ftp  # 从name字符串的索引为8(对应字符"w")开始,使用"ftp"字符穿将其覆盖替换后续的字符。
39
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> get blog
https://ftp.cnblogs.com/oldboyedu2020
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> STRLEN blog
39
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 

四.字符串的删除指令

1.使用"DEL"指令删除指定的KEY

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> DEL stars
1
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *
age
hobby
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 

2.使用"FLUSHDB"指令只删除当前Redis实例所在的数据库的所有KEY

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> KEYS *
age
id
gender
address
name
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 12 --raw
127.0.0.1:6379[12]> KEYS *
stars
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
number
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 13 --raw
127.0.0.1:6379[13]> KEYS *
age
stars
hobby
number
count
name
blog
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> FLUSHDB  # 只删除当前数据库的所有KEY
OK
127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> KEYS *

127.0.0.1:6379[13]> 
127.0.0.1:6379[13]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 12 --raw
127.0.0.1:6379[12]> KEYS *
stars
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> KEYS *
age
id
gender
address
name
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 

3.使用"FLUSHALL"指令删除当前Redis实例所有数据库的所有KEY

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> KEYS *
age
id
gender
address
name
127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 12 --raw
127.0.0.1:6379[12]> KEYS *
stars
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 12 --raw
127.0.0.1:6379[12]> KEYS *
stars
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> FLUSHALL  # 不仅会删除当前数据库的所有KEY,还会删除其它数据库的所有KEY!
OK
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> KEYS *

127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> QUIT
[root@redis201.oldboyedu.com ~]# 
[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 11 --raw
127.0.0.1:6379[11]> KEYS *

127.0.0.1:6379[11]> 
127.0.0.1:6379[11]> QUIT
[root@redis201.oldboyedu.com ~]# 

五.字符串类型的应用场景

1.计数器案例

[root@redis201.oldboyedu.com ~]# redis-cli -a oldboyedu2021 -n 12 --raw
127.0.0.1:6379[12]> KEYS *

127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> SET stars 0  # 假设关注数量以stars为KEY作为标识,起始值均为0
OK
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> KEYS *
stars
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> GET stars
0
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> INCR stars  # 每次增加一个数字
1
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> INCR stars
2
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> INCR stars
3
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> GET stars
3
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> INCRBY stars 9000000  # 我们可以暗箱操作,直接增加900w粉丝数
9000003
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> GET stars
9000003
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> DECRBY stars 1000000  # 当然,我们也可以直接减去100w粉丝数
8000003
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> GET stars
8000003
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> DECR stars  # 当然,我们也可以每次递减一个数字哟~
8000002
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> DECR stars
8000001
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> GET stars
8000001
127.0.0.1:6379[12]> 
127.0.0.1:6379[12]> QUIT
[root@redis201.oldboyedu.com ~]# 

2.String的应用场景总结

    (1)存储会话缓存(session共享);
    (2)计数器相关应用,如:微博数,粉丝数,订阅、礼物等。
    (3)临时缓存验证码,如前端为每次请求验证码生成唯一的UUID,后端会生成验证码返回给前端,而后以UUID作为KEY,生成的验证码写入数据库,以便于前端的验证码进行验证(当然,验证成功后后端会将Redis的缓存的验证码删除)。
谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇