redis持久化

redis的持久化分为aof和rdb两种


1.rdb持久化

  1. 在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。

  2. 你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。

  3. 你也可以通过调用 SAVE 或者 BGSAVE , 手动让 Redis 进行数据集保存操作。

  4. 比如说, 以下设置会让 Redis 在满足“ 60 秒内有至少有 1000 个键被改动”这一条件时, 自动保存一次数据集:

  5. save 60 1000
  6. 这种持久化方式被称为快照(snapshot)

2.aof持久化

  1. 快照功能并不是非常耐久(durable): 如果 Redis 因为某些原因而造成故障停机, 那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。

  2. 尽管对于某些程序来说, 数据的耐久性并不是最重要的考虑因素, 但是对于那些追求完全耐久能力(full durability)的程序来说, 快照功能就不太适用了。

  3. 从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化。

  4. 你可以通过修改配置文件来打开 AOF 功能:

  5. appendonly yes
  6. 从现在开始, 每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。

  7. 这样的话, 当 Redis 重新启时, 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。 ---相当于mysql的binlog日志啊
  8. Redis 2.2 需要自己手动执行 BGREWRITEAOF 命令; Redis 2.4 则可以自动触发 AOF 重写,
配置文件:
  1. [root@HaoDai_App_Weight01 18300]# more redis.conf
  2. daemonize yes
  3. pidfile "./run/redis.pid"
  4. port 18300
  5. timeout 0
  6. loglevel verbose
  7. logfile "./log/redis.log"
  8. dir "./data"
  9. databases 16
  10. #save 900 1
  11. #save 300 10
  12. #save 60 10000
  13. #rdbcompression yes
  14. #dbfilename "dump.rdb"

  15. ################################### LIMITS ####################################

  16. maxclients 655350
  17. # maxmemory <bytes>

  18. ############################## APPEND ONLY MODE ###############################

  19. appendonly yes                            ###aof持久化
  20. appendfilename "appendonly_18300.aof"     ####保存的文件名称
  21. appendfsync everysec                      ###持久化方式
  22. aof-rewrite-incremental-fsync yes
  23. #no-appendfsync-on-rewrite yes
  24. ################################## SLOW LOG ###################################
  25. list-max-ziplist-entries 512
  26. list-max-ziplist-value 64
  27. set-max-intset-entries 512
  28. activerehashing yes
  29. #################################
  30. slowlog-log-slower-than 500000
  31. slowlog-max-len 655350
  32. ############master - slave ##########################
  33. #slave-priority 20
  34. #slave-serve-stale-data yes
  35. #slave-read-only no
  36. #slaveof 192.168.1.156 17300
  37. #################################################



附上两个持久化 备份脚本:
aof备份脚本
  1. #!/bin/bash
  2. #/root/sh/redis_aof.sh 18100
  3. ##################################
  4. #auther@F.W
  5. ##################################
  6. if [ ! -n "$1" ]; then
  7.   echo "Port IS NULL"
  8.   exit
  9. fi


  10. BACK_DIR=/home/backup
  11. REDIS_BIN=/usr/local/bin/redis-cli
  12. REDIS_IP=127.0.0.1
  13. REDIS_PORT=$1

  14. DATE=`date +%Y%m%d%H%M`

  15. ##################################
  16. #backup redis
  17. ##################################
  18. REDIS_BACK_DIR="$BACK_DIR"/redis/$1/"$DATE"

  19. if [ ! -d $REDIS_BACK_DIR ];then
  20.    mkdir -p $REDIS_BACK_DIR
  21. fi
  22. $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgrewriteaof
  23. echo "waiting"
  24. sleep 600
  25. cp /home/redis/$1/data/appendonly.aof $REDIS_BACK_DIR
  26. if [[ ! -f $BACK_DIR/redis_back.log ]];then
  27.     touch $BACK_DIR/redis_back.log
  28. fi
  29. echo "redis $1 backup seccuss,$DATE " >>$BACK_DIR/redis_back.log
  30. find $BACK_DIR/redis/ -mtime +7 -exec rm -rf {} \

rdb备份脚本
  1. #!/bin/bash
  2. #/root/sh/back_redis.sh 16100
  3. ##################################
  4. #auther@F.W
  5. ##################################
  6. BACK_DIR=/home/backup
  7. REDIS_BIN=/usr/local/bin/redis-cli
  8. REDIS_IP=127.0.0.1
  9. REDIS_PORT=$1

  10. DATE=`date +%Y%m%d%H%M`

  11. ##################################
  12. #backup redis
  13. ##################################
  14. REDIS_BACK_DIR="$BACK_DIR"/redis/"$DATE"

  15. if [ ! -d $REDIS_BACK_DIR ];then
  16.    mkdir -p $REDIS_BACK_DIR
  17. fi
  18. ROLE=`$REDIS_BIN -p $1 info|grep role|awk -F: '{print $2}'|tr -d '\r'`
  19. case $ROLE in
  20.     master)
  21.         $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgsave
  22.         
  23.     ;;
  24.     slave)
  25.     #    $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgsave
  26.     #    $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgrewriteaof
  27.     ;;
  28.     *)
  29.         exit 1
  30.         ;;
  31. esac
  32. echo "waiting"
  33. sleep 60
  34. case $ROLE in
  35.     slave)
  36.     echo "back slave"
  37.     ;;
  38.     master)
  39.     echo "backup master"
  40.     cp /home/redis/$1/data/dump.rdb $REDIS_BACK_DIR
  41.     ;;
  42. esac
  43. if [[ ! -f $BACK_DIR/redis_back.log ]];then
  44.     touch $BACK_DIR/redis_back.log
  45. fi
  46. echo "redis $ROLE backup seccuss,$DATE " >>$BACK_DIR/redis_back.log

关于这两种持久化方法的详细对比查看:
http://redisdoc.com/topic/persistence.html#redis

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29096438/viewspace-1794315/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29096438/viewspace-1794315/

redis数据持久化 在实际使用中需要根据Redis作为主存还是缓存、数据完整性和缺失性的要求、CPU和内存情况等诸多因素来确定适合自己的持久化方案,一般来说稳妥的做法包括:RDB与AOF同时使用:最安全的做法,即使AOF损坏无法修复,还可以用RDB来恢复数据,当然在持久化时对性能也会有影响。只使用RDB:在Redis当简单缓存,没有缓存也不会造成缓存雪崩的情况下可只使用RDB即可。单独使用AOF:不推荐,因为AOF对于数据的恢复载入比RDB慢,所以使用AOF的时候,最好还是有RDB作为备份。 阅读详情

相关推荐

高分辨率航拍图像的目标检测切图优化策略

本文深入探讨了高分辨率航拍图像目标检测中的切图优化策略。针对大尺寸图像直接缩放导致小目标信息丢失的问题,文章详细阐述了基于重叠切割的核心方法,包括如何根据目标尺寸确定切图尺寸与重叠率,并提供了从切图到坐标还原的完整代码实现与避坑指南,有效提升检测精度与效率。

xk7n92h3p5m的博客 1096

详解Redis持久化

详解Redis持久化RDB持久化和AOF持久化

. 9356

使用epiDisplay包中的logistic

其中的logistic.display函数可以用于获取逻辑回归模型的汇总统计信息,包括自变量的优势比和置信区间,以及回归系数的Wald检验的p值。最后,我们使用print函数打印出汇总统计信息。使用epiDisplay包中的logistic.display函数获取逻辑回归模型的汇总统计信息(包括自变量的初始和调整后的优势比及置信区间,回归系数的Wald检验的p值)- R语言。通过使用logistic.display函数,我们可以方便地获取逻辑回归模型的重要统计信息,并对自变量的影响进行解释和推断。

CyberJolt的博客 583

[Redis] Redis数据持久化

我们之前在学习MySQL数据库的时候,我们学习过MySQL事务的四个比较核心的特性:分别是原子性(把对多个表的操作打包为一个操作),一致性(事务前后的数据都是合法数据,比如同一个操作中同时减少和增加一个值,要不同时成功,要不同时失败,不能出现中间状态),持久性(把数据存储在硬盘上),隔离性(脏读,不可重复读,幻读,串行化).

无需多言 2663

Redis持久化机制

Redis持久化

chaodddddd的博客 2569

redis持久化

Redis持久化机制主要是通过内部的方式来实现的,而不是直接将数据写入到外部数据库(如 MySQL)。下面将详细介绍 Redis 的默认持久化机制,以及如何通过编程的方式将 Redis 数据手动同步到 MySQL。

2301_76723322的博客 1530

Redis持久化

1.MySQL可以保证事务中的持久性,即只要事务提交,之后无论MySQL挂了还是服务器宕机,数据都不会丢失。 2.而Redis虽然也有持久化策略,但是它缺无法保证持久性,当Redis挂了,往往都会丢失一定的数据。 造成这两种的区别就是它们的持久化策略不同

tazj666的博客 993

Redis持久化

Redis提供了两个持久化数据的能力,RDB Snapshot 和 AOF(Append Only FIle)日志RDB快照能够在指定的时间间隔内生成数据快照,而AOF日志则记录了所有的写操作命令。RDB做镜像全量持久化,AOF做增量持久化RDB全称Redis Database Backup file (Redis数据备份⽂件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。 当Redis实例故障重启后,从磁盘读取快照⽂件,恢复数据。这样一来即使

gorgor在码农 1372

redisredis持久化

两种持久化方式(1)RDBRedis DataBase):内存中数据直接写入文件中(2)AOF(Append Of File):以追加的行为把内容写入文件中。

rita_0567的博客 1612

Redis 持久化

Redis持久化机制对比:RDB与AOF Redis提供两种持久化方式:RDB(快照)和AOF(日志)。RDB通过定期生成二进制快照文件实现备份,具有文件小、恢复快的特点,但可能丢失两次备份间的数据。AOF记录每个写操作,数据安全性更高,但文件体积较大。两者主要区别在于:RDB只保存fork时的内存状态,而AOF会额外缓存后续修改。实际应用中,Redis4.0引入混合持久化,结合两者优势,在AOF重写时先用RDB格式保存当前状态,再追加后续AOF日志。当两种文件同时存在时,Redis优先使用数据更完整的AO

2302_80192828的博客 1509

Redis --- Redis如何做持久化

Redis如何做持久化 一共三种 一、RDB(快照)持久化:保存某个时间点的全量数据快照 redis.conf save 60 1 代表Redis在60秒内写入一条数据那么进行快照 stop-writes-on-basave-error yes 代表当备份进程出错的时候,主进程就停止写入新的操作了。这样是为了保护持久化数据一致性的问题。 rdbcompression yes 表示...

xinbumi的博客 2万+

Redis持久化

无论是AOF持久化还是快照持久化,将数据持久化到硬盘上都是非常有必要的,但除了进行持久化外,用户还必须对持久化得到的文件进行备份(最好是备份到不同的地方),这样才能尽量避免数据丢失事故发生。开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。选项一般不推荐,这种方案会使Redis丢失不定量的数据而且如果用户的硬盘处理写入操作的速度不够的话,那么当缓冲区被等待写入的数据填满时,Redis的写入操作将被阻塞,这会导致Redis的请求速度变慢。

2401_89317354的博客 840

Redis持久化

讲解Redis持久化,包括AOF,RDB,混合持久化

博客网站 https://async-area.com 1918

Redis持久化的方式

本文主要讲述了redisrdb,aof持久化的原理流程和配置使用

sjhhshsh的博客 1941

重庆大学编译原理课程实验项目代码仓库与学习资源整合平台_编译原理实验代码词法分析器语法分析器语义分析中间代码生成目标代码优化PL0语言编译器实现实验报告模板学习笔.zip

重庆大学编译原理课程实验项目代码仓库与学习资源整合平台_编译原理实验代码词法分析器语法分析器语义分析中间代码生成目标代码优化PL0语言编译器实现实验报告模板学习笔.zip

上一篇: redis命令之-script脚本学习
下一篇: phpmyadmin 提示 PHP 5.2+ is required 的解决办法
cml2016
博客等级 码龄12年 8粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值