第20周作业

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

 

   当用户通过浏览器输入域名访问nginx web 服务时,如果用户访问的是静态资源,则由nginx解析并返回给用户;

   如果用户访问的是动态请求,比如.php等结尾,那么nginx就会通过fastCGI接口发送给PHP解释器(php-fpm),让PHP服务进行解析;

   如果本机有用户需要访问的资源,则通过nginx服务返回给用户; 如果这个动态请求需要读取数据库,则PHP会请求访问数据库,以获取数据,最后通过nginx服务返回给用户。

 

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

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

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

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

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

 RDB模式:修改redis配置文件

vim /apps/redis/erc/redis.conf

save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /apps/redis/data/

stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
AOF模式:修改配置文件
vim /apps/redis/erc/redis.conf

save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir /apps/redis/data/

stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes

appendonly yes 
appendfilename  " appendonly-3769.aof"
appendfsync everysec
dis /bigdiskpath
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes

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

修改/apps/redis/etc/redis.conf的配置

save "" 

dbfilename dump_6379.rdb

dir "/apps/redis/data"

appendonly no
vim redis_backup.sh
#!/bin/bash redis-cli -h 127.0.0.1 -a 123456 save &> /dev/null DATE =`date +%F_%H_%M_%S` [ -e /backup/redis-rdb/ ] || mkdir -p /backup/redis-rdb/ mv /apps/redis/data/dump_6379.rdb /backup/redis-rdb/dump_6379-${DATE}.rdb
 

   
posted @ 2020-11-03 14:42  guobang  阅读(71)  评论(0编辑  收藏  举报