redis的持久化分为aof和rdb两种
1.rdb持久化
- 在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。
-
- 你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次数据集。
-
- 你也可以通过调用 SAVE 或者 BGSAVE , 手动让 Redis 进行数据集保存操作。
-
- 比如说, 以下设置会让 Redis 在满足“ 60 秒内有至少有 1000 个键被改动”这一条件时, 自动保存一次数据集:
-
- save 60 1000
- 这种持久化方式被称为快照(snapshot)
2.aof持久化
- 快照功能并不是非常耐久(durable): 如果 Redis 因为某些原因而造成故障停机, 那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。
-
- 尽管对于某些程序来说, 数据的耐久性并不是最重要的考虑因素, 但是对于那些追求完全耐久能力(full durability)的程序来说, 快照功能就不太适用了。
-
- 从 1.1 版本开始, Redis 增加了一种完全耐久的持久化方式: AOF 持久化。
-
- 你可以通过修改配置文件来打开 AOF 功能:
-
- appendonly yes
- 从现在开始, 每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。
-
- 这样的话, 当 Redis 重新启时, 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。 ---相当于mysql的binlog日志啊
- Redis 2.2 需要自己手动执行 BGREWRITEAOF 命令; Redis 2.4 则可以自动触发 AOF 重写,
- [root@HaoDai_App_Weight01 18300]# more redis.conf
- daemonize yes
- pidfile "./run/redis.pid"
- port 18300
- timeout 0
- loglevel verbose
- logfile "./log/redis.log"
- dir "./data"
- databases 16
- #save 900 1
- #save 300 10
- #save 60 10000
- #rdbcompression yes
- #dbfilename "dump.rdb"
-
- ################################### LIMITS ####################################
-
- maxclients 655350
- # maxmemory <bytes>
-
- ############################## APPEND ONLY MODE ###############################
-
- appendonly yes ###aof持久化
- appendfilename "appendonly_18300.aof" ####保存的文件名称
- appendfsync everysec ###持久化方式
- aof-rewrite-incremental-fsync yes
- #no-appendfsync-on-rewrite yes
- ################################## SLOW LOG ###################################
- list-max-ziplist-entries 512
- list-max-ziplist-value 64
- set-max-intset-entries 512
- activerehashing yes
- #################################
- slowlog-log-slower-than 500000
- slowlog-max-len 655350
- ############master - slave ##########################
- #slave-priority 20
- #slave-serve-stale-data yes
- #slave-read-only no
- #slaveof 192.168.1.156 17300
- #################################################
附上两个持久化 备份脚本:
aof备份脚本
- #!/bin/bash
- #/root/sh/redis_aof.sh 18100
- ##################################
- #auther@F.W
- ##################################
- if [ ! -n "$1" ]; then
- echo "Port IS NULL"
- exit
- fi
-
-
- BACK_DIR=/home/backup
- REDIS_BIN=/usr/local/bin/redis-cli
- REDIS_IP=127.0.0.1
- REDIS_PORT=$1
-
- DATE=`date +%Y%m%d%H%M`
-
- ##################################
- #backup redis
- ##################################
- REDIS_BACK_DIR="$BACK_DIR"/redis/$1/"$DATE"
-
- if [ ! -d $REDIS_BACK_DIR ];then
- mkdir -p $REDIS_BACK_DIR
- fi
- $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgrewriteaof
- echo "waiting"
- sleep 600
- cp /home/redis/$1/data/appendonly.aof $REDIS_BACK_DIR
- if [[ ! -f $BACK_DIR/redis_back.log ]];then
- touch $BACK_DIR/redis_back.log
- fi
- echo "redis $1 backup seccuss,$DATE " >>$BACK_DIR/redis_back.log
- find $BACK_DIR/redis/ -mtime +7 -exec rm -rf {} \
rdb备份脚本
- #!/bin/bash
- #/root/sh/back_redis.sh 16100
- ##################################
- #auther@F.W
- ##################################
- BACK_DIR=/home/backup
- REDIS_BIN=/usr/local/bin/redis-cli
- REDIS_IP=127.0.0.1
- REDIS_PORT=$1
-
- DATE=`date +%Y%m%d%H%M`
-
- ##################################
- #backup redis
- ##################################
- REDIS_BACK_DIR="$BACK_DIR"/redis/"$DATE"
-
- if [ ! -d $REDIS_BACK_DIR ];then
- mkdir -p $REDIS_BACK_DIR
- fi
- ROLE=`$REDIS_BIN -p $1 info|grep role|awk -F: '{print $2}'|tr -d '\r'`
- case $ROLE in
- master)
- $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgsave
-
- ;;
- slave)
- # $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgsave
- # $REDIS_BIN -h $REDIS_IP -p $REDIS_PORT -a pwd bgrewriteaof
- ;;
- *)
- exit 1
- ;;
- esac
- echo "waiting"
- sleep 60
- case $ROLE in
- slave)
- echo "back slave"
- ;;
- master)
- echo "backup master"
- cp /home/redis/$1/data/dump.rdb $REDIS_BACK_DIR
- ;;
- esac
- if [[ ! -f $BACK_DIR/redis_back.log ]];then
- touch $BACK_DIR/redis_back.log
- fi
- 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/
1685

被折叠的 条评论
为什么被折叠?



