缓存穿透:redis大部分情况通过key查对应值若key不存在就查不到就会去数据库找。如果有大量这样请求,这些请求就像穿透了一样直接打在数据库上
(去redis找,找不到,去mysql中找,不停的找)
缓存击穿:
缓存雪崩:当某一个时刻出现大规模的缓存失效的情况,那么就会导致大量的请求直接打在数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。这时候如果运维马上又重启数据库,马上又会有新的流量把数据库打死。这就是缓存雪崩。
解决:
高热数据永不过期
rsync远程同步(同步现有数据,增量)
rsync同步简介
一款快速增量备份工具(远程同步);支持本地复制,或者与其他ssh、rsync主机同步
cp将源文件完整复制到指定路径下“全备”
rsync做本地复制的话
1.首先将源文件和目标位置文件对比,找出差异部分
2.根据目的位置文件与源文件差异部分,进行一致性同步
同步方式
(1)完整备份:每次备份都是从备份源将所有的文件或目录备份到目的地。
(2)差量备份:备份上次完全备份以后有变化的数据(他针对的上次的完全备份,他备份过程中不清除存档属性)。
(3)增量备份:备份上次备份以后有变化的数据(他才不管是那种类型的备份,有变化的数据就备份,他会清除存档属性)
备份方式
1.发起端:负责rsync 同步操作的客户端叫做发起端,通知服务器我要备份你的数据
2.备份源:负责响应来自客户机rsync 同步操作的服务器叫做备份源,需要备份的服务器
3.服务器端:负责运行rsync服务,一般来说,需要备份的服务器
4.客户端:存放备份数据
rsync同步源
指定备份操作的远程服务器,也称为备份源(监听端口:873)
rsync命令基本用法
rsync [选项] 原始位置 目标位置
常用选项
-r:递归模式,包含目录及子目录中的所有文件
-l:对于符号链接文件仍然复制为符号链接文件
-v:显示同步过程的详细信息
-z:在传输文件时进行压缩
-a:归档模式,保留文件的权限、属性等信息,等同于组合选项
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-H:保留硬链接文件
-A:保留ACL属性信息
-D:保留设备文件及其他特殊文件
rsync备份操作示例
rsync+inotify结合使用(实时监控)
配置服务端与客户端的实验
192.168.109.1 服务端
192.168.109.2 客户端
配置rsync源服务器(192.168.109.1)
1.检查rsync是否安装
2.
为备份账户创建数据文件
vim /etc/rsyncd_users.db
#保证所有用户对源目录/var/www/html 都有读取权限
启动
配置rsync客户端(192.168.109.2)
免交互格式配置
验证
服务端
客户端
发起端(客户端)配置rsync+inotify
192.168.109.1
cd /opt/ky29
vim /etc/sysctl.conf
安装 inotify-tools
tar -xf inotify-tools-3.14.tar.gz -C /opt/
make && make install
另一个终端
vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.109.2::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
##while判断是否接收到监控记录
do
if [ $(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done
chmod +x /opt/inotify.sh
chmod 777 /var/www/html/
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify.sh' >> /etc/rc.d/rc.local
rsync适合在什么场景中
- 两台服务器之间数据同步;
- 全网集群架构服务器数据备份,把所有客户服务武器数据定时同步到备份服务器;
- rsync结合inotify的功能做实时数据同步;
在本地第一次完备第二次增量