1. redis 一种非关系数据库。
2. redis常用的命令
(1)对key操作的命令。
(1)keys *
(2)del key
(3)expire key seconds
(4)ttl key
(2) 操作数据库的命令
select index
flushdb
flushall
3. redis支持的数据类型
(1)字符串
1. set key value
2. get key
3. mset key value key value ...
4. mget key key
5. setnx key value
6. incr key
7. decr key
(2) 队列【列表】
1. lpop
2. lrange
3. lpush
(3) hash哈希
1.hset key field value
2.hget key field
3.hgetall key
(4) set集合
sadd key value value value
smembers key
spop key
(5)sort set 集合
zadd key scope value scope value ...
3.1 什么是持久化?
```
1. 把内存中的数据持久化到磁盘。这个过程就是持久化。 当redis启动时会从磁盘上读取数据并加载到内存。
2.
## 3.3 redis持久化的方式
```
1. RDB: 以快照的方式进行持久化。 在一定时间间隔内进行快照。把数据进行保存到磁盘。
2. AOF: 会把每次对redis的写操作命令追加到一个日志尾,当redis启动时则把该日志中的命令执行一遍.
## 4.2 save和bgsave的区别
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:
![image-20210628091507831](assets/image-20210628091507831.png)
执行完成时候如果存在老的RDB文件 ,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
bgsave执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:
![image-20210628091715910](assets/image-20210628091715910.png)
## 4.3 通过配置文件来触发RDB ----- bgsave命令
![image-20210628092515419](assets/image-20210628092515419.png)
## 4.4 恢复数据
可以把dump.rdb放入到redis启动目录下。 当redis再次被启动时则会加载该数据。
## 4.5 rdb持久化方式的优缺点
有点:
```
(1)RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。
(2)bgsave生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。
(3)RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。