第20周作业--nginx && redis

1、搭建一个 LNMP 架构请写出它的底层原理,当用户访问的是静态资源、和动态资源这两种类型的资源是,其中各个 service 之间做了什么操作。请分别一 一写出

回答:首先用户在浏览器输入网址并进行访问,如果用户访问的内容为静态资源,则由nginx服务器直接返回给用户客户端;

如果用户访问的为动态资源,那么nginx通过fastcgi接口将请求发送至后台php-fpm服务器进行解析,解析结果通过fastcgi接口发送至nginx服务器,再由nginx服务器发送至客户端;但是如果这个动态资源需要访问数据库,那么php-fpm就会继续向后台请求mysql数据库,发送至客户端。

 

2、AOF 和 RDB 的两者之间的区别以及优缺点

回答:服务启动后默认开启RDB模式进行持久化保存,RDB模式相当于定时保存,每次保存只会保存当前的最新状态;而AOF模式需要手动开启,相当于每次命令操作符的保存文件,但是只保存自AOF模式开启之后的命令,开启AOF模式之前的命令和状态将会丢失。

RDB模式速度较快,但是会丢置之前的保存记录,也有可能会丢失最近一次保存之前的数据。

AOF模式会即可将操作的命令保存至文件,易读性较高,所以即使服务器发生故障也不会丢失最后的部分数据,在aof文件体积过大时,自动在后台对AOF文件进行重写,重写后的文件包含恢复当前数据集所需的最小命令集合,整个重写过程安全,并且重写完成后,redis会对新的文件进行追加操作。但是AOF文件要大雨RDB格式的文件,恢复数据的速度要比RDB模式缓慢,出现BUG的可能性较多。

 

3、请问 Redis 持久化如何实现。

回答:Redis持久化有两种模式可供选择。及RDB模式和AOF模式,。

RDB模式:修改redis配置文件

[root@centos8 ~]# vim /etc/redis.conf
...
save 900 1
save 300 10
save 60 10000
...
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes

dbfilename dump.rdb
dir /var/lib/redis

  AOF模式,修改配置文件

[root@centos8 ~]# vim /etc/redis.conf
...

save 900 1
save 300 10
save 60 10000
...
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes

dbfilename dump.rdb
dir /var/lib/redis

   appendonly yes

   appendfilename "appendonly.aof"

   appendfsync everysec

   no-appendfsync-on-rewrite no

  

  

4、通过脚本实现自动化 RDB 备份

 回答:首先修改配置文件,开启RDB功能及文件命名:

[root@centos8 ~]# vim /etc/redis.conf
save ""
dbfilename dump.rdb
dir /var/lib/redis
appendonly no

 编辑脚本

[root@centos8 ~]# vim redis_backup.sh
#!/bin/bash
DATE=`date +%Y%m%d%H%M%S`

redis-cli -h 127.0.0.1 -a 123456 --no-ath-warning bgsave &> /dev/null
[ -e /var/lib/redis/ ] || mkdir -p /var/lib/redis/backup
mv /var/lib/redis/dump.rdb /var/lib/redis/backup/dump-${DATE}.rdb

  添加定时任务

[root@centos8 ~]# crontab -e
*/10 * * * * /usr/bin/sh /redis_backup.sh
posted @ 2020-10-25 13:51  刘六六LHR  阅读(57)  评论(0)    收藏  举报