程序媛雪儿
Java后端
·2024-07-16
大家好,我是程序媛雪儿,今天给大家带来的是redis持久化。 一、RDB(redis数据快照)     含义:Redis数据快照,也就是把内存中的所有数据整体记录到磁盘中,如果redis实例故障重启,可以从磁盘中读取快照文件,恢复数据 实操命令 redis-cli #连接redis# save #Redis主进程执行rdb,会阻塞所有命令 bgsave # 开启子进程执行rdb,避免主进程受到影响     redis.conf文件下也有对应的设置 # 900s内,如果至少有1个key被修改,则执行bgsave save 900 1 save 300 10 save 60 10000 执行原理 执行bgsave命令的时候会把主进程fork得到子进程,子进程和主进程共享同一片物理内存,这时子进程就可以读取内存文件存到rdb中了     这种方式存在脏读的问题,所以fork采用的是copy-on-write技术,也就是让数据加上read-only的锁     当主进程执行读操作时,访问共享内存     当主进程执行写操作时,只能先拷贝一份数据,执行写操作 二、AOF(追加文件)     含义:可以称为追加文件,redis所处理的每一个写命令都会记录到AOF中,可以看作是命令文件     aof默认是关闭的,需要修改redis.conf配置来开启 # 是否开启AOF功能,默认是no appendonly yes # aof文件的名称 appendfilename "appendonly.aof" # aof命令记录的频率 appendfsync no/always/everysec     因为AOF是记录命令,所以要比记录数据的RDB大得多,因为AOF会记录对同一个key多次写操作,但只有最后一次才有意义,那么为了减少aof体积,我们可以合并命令,通过bgrewriteaof命令,可以让aof文件执行重写命令,用最少的命令达到相同的效果     redis.conf配置aof触发阈值重写aof # 文件比上次超多百分之百,也就是上次aop文件两倍触发重写 auto-aof-rewrite-percentage 100 # aop文件体积最小达到多大触发重写 auto-aof-rewrite-min-size 64mb 今天雪儿的分享到这里就结束啦,如果大家想详细了解,欢迎关注同名微信公众号和b站视频,里面有带图解的笔记和视频资料,雪儿祝大家秋招顺利,早日发财,那么,晚安啦~[月亮] #知识碎片#
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP