博客24周

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

  LNMP 架构中,L是liunx 操作系统,N是nginx,负责静态页面和调用外部程序解析动态页面。M是mysql 后台数据库。P 是php,独立的服务php-fpm,nginx 直接处理静态资源,动态资源调用php-fpm。

 

 1、用户通过浏览器http request请求到服务器(Nginx) ,服务器响应并处理web请求,将静态资源(静态的图片,视频,css等)直接返回给用户并缓存在用户主机上。

2、Nginx服务器调用动态资源,PHP脚本调用fastCGI传输给php-fpm,然后php-fpm调用PHP解释器进程解析PHP脚本。

出现大流量高并发情况,PHP解析器也可以开启多进程处理高并发,将解析后的脚本返回给php-fpm,然后php-fpm再调给fast-cgi将脚本解析信息传送给nginx,

服务器再通过http response传送给用户浏览器。

3、浏览器再将服务器传送的信息进行解析与渲染,呈现给用户。

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

redis持久化的两种模式:

备份策略不同, RDB以时间点方式备份,可以备份多个。出现问题恢复时只能恢复到某个时间点。AOF(AppendOnlyFIle)则是按操作顺序追加文件指定文件尾部。

AOF模式的优点:1、数据安全性高。采用fsync策略(fsync同步内存中redis所有修改的文件到存储设备),即使机器出现故障也只丢失1秒钟的数据。

                             2、该机制对日志写入操作采用append模式,即使机器出现宕机,也不会破坏日志文件中已经存在的内容。如果操作只写入一半 数据出现系统问题,

                                  在redis下一次启动前,通过redis-check-aof工具来解决数据一致性问题。

                             3、当AOF体积过大时,后台自动重写AOF文件,重写过程安全。

                             4、拥有清晰,易于理解的日志文件记录所有的修改操作。可利用该文件完成数据重建。

RDB模式的优点:1、RDB以快照的方式保存了某时间点的数据,可以通过脚本执行redis指令bgsave(异步,非阻塞)或save(同步,阻塞)命令自定义时间点备份。

                             2、备份的大数据,恢复速度快

                             3、RDB可以最大化redis性能。父进程保存RDB文件只需fork出一个子进程。子进程就会处理保存工作。父进程无需执行任何磁盘I/O操作。

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

 AOF模式配置文件如下:

appendonly yes

appendfilename "appendonly-${port}.aof"

appendfsync everysec

dir /bigdiskpath

no-appendfsync-on-rewrite yes

auto-aof-rewrite-percentage 100

auto-aof-rewirte-min-size 64mb

aof-load-truncated yes

RDB配置文件如下:

save 900 1

save 300 10 

save 60 10000

dbfilename dump_6379.rdb

dir /data/redis/data/

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

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

cat redis_bak.sh

!#/bin/bash

ip='127.0.0.1'

passwd='123456'

redis-cli -h  ${ip} -a ${passwd}  save &> /dev/null

DATE=`date +%F-%T`

[ -e /backup/redis-back/ ] || mkdir -p /backup/redis-back/

mv  /data/redis/data/dump_6379.rdb /backup/redis-back/dump_6379-${DATE}.rdb

 ###添加定时任务

*/10 * * * * /bin/bash /root/redis_bak.sh >> /tmp/redis_bak.log

原文地址:https://www.cnblogs.com/yazhan/p/13853298.html