zoukankan      html  css  js  c++  java
  • 博客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

  • 相关阅读:
    Table.Combine追加…Combine(Power Query 之 M 语言)
    Table.NestedJoin合并…Join(Power Query 之 M 语言)
    Delphi Post登陆Delphi盒子论坛源码
    分享一个函数GetStr
    用友生产工艺路线导入工具1.1
    笔下文学小说下载【3.01】 发布
    U6 3.2盘点单管理1.01
    防止SQL SERVER的事件探查器跟踪软件
    双系统的安装(原创)
    2345导航自动登陆签到【1.01】
  • 原文地址:https://www.cnblogs.com/yazhan/p/13853298.html
Copyright © 2011-2022 走看看