1.redis的备份
redis需要远程访问 添加密码进行登录,修改主配置文件添加:
requirepass xxx
redis-cli -h 127.0.0.1 -p 6379 -a 123456 bgsave
###
-h 指定主机ip
-p 指定redis端口
-a 指定密码
bgsave:数据文件持久化到磁盘
然后到数据目录下打包备份。
tar zcf /usr/local/192.168.0.161_redis_6379.tar.gz dump.rdb
附上一个自动备份的脚本 或者写到任务计划里
#bin/bash
REDIS_DIR="/usr/local/redis/var/db/"
REDIS_PORT=`netstat -tunlp|grep redis|egrep '6379' |grep -v grep|awk '{print $4}'|awk -F: '{print $2}'`
BACKUP_DIR="/usr/local/hero_all_backup"
MYSQL_LOG="/home/msbakscript/logs/mysql.log"
HOST=$(awk -F= '/IPADDR=/ {print $2}' /etc/sysconfig/network-scripts/ifcfg-eth1)
DATE=`date +%F_%H-%M`
Hour=`date '+%H'`
pwd=IU8b2W4Nt9fIfLksLYfC
all_bak=("$HOST"_"$DATE")
increase_bak=("$HOST"_"$DATE""-increase")
DEL_DAY="7"
#################################################################
PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/mysql/bin:/usr/local/redis/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/python/bin:/usr/local/python/sbin:/usr/
local/eventlog/bin:/usr/local/eventlog/sbin:/usr/local/syslog-ng/bin:/usr/local/syslog-ng/sbin:/root/bin"
redis_backup(){
for i in ${REDIS_PORT}
do
idt=`redis-cli -p $i -a ${pwd} info |grep role|awk -F: '{print $2}'|tr -d '\r'`
#根据redis的角色进行备份,master不开启AOF持久化,通过bgsave对RDB快照;slave开启AOF持久化,通过bgrewriteaof进行备份;
case $idt in
master)
echo "redis-cli -h 127.0.0.1 -p $i -a ${pwd} bgsave"
redis-cli -h 127.0.0.1 -p $i -a ${pwd} bgsave
;;
slvae)
echo "redis-cli -h 127.0.0.1 -p $i -a ${pwd} bgrewriteaof"
redis-cli -h 127.0.0.1 -p $i -a ${pwd} bgrewriteaof
;;
*)
exit 1
;;
esac
done
}
cp_backup(){
echo "sleep 30 waiting redis write to disk"
sleep 30
for i in ${REDIS_PORT}
do
idt=`redis-cli -p $i -a ${pwd} info |grep role|awk -F: '{print $2}'|tr -d '\r'`
#根据redis的角色进行备份,master不开启AOF持久化,通过bgsave对RDB快照;slave开启AOF持久化,通过bgrewriteaof进行备份;
case $idt in
master)
#echo cp ${REDIS_DIR}/dump.rdb ${BACKUP_DIR}/${HOST}_${i}.dump.rdb.$tt >> ${BACKUP_DIR}/redis_backup.log
#/bin/cp -f ${REDIS_DIR}/dump.rdb ${BACKUP_DIR}/${HOST}_${i}.dump.rdb.$tt
cd ${REDIS_DIR}
tar zcf ${BACKUP_DIR}/${all_bak}_${i}.tar.gz dump.rdb
echo -en "%${all_bak}_${i}.tar.gz" >>${MYSQL_LOG}
cd -
;;
slvae)
#echo cp ${REDIS_DIR}/appendonly.aof ${BACKUP_DIR}/${HOST}_${i}.appendonly.aof.$tt >> ${BACKUP_DIR}/redis_backup.log
#/bin/cp -f ${REDIS_DIR}/appendonly.aof ${BACKUP_DIR}/${HOST}_${i}.appendonly.aof.$tt
cd ${REDIS_DIR}
tar zcf ${BACKUP_DIR}/${all_bak}_${i}.tar.gz appendonly.aof
echo -en "%${all_bak}_${i}.tar.gz" >>${MYSQL_LOG}
cd -
;;
*)
exit 1
;;
esac
done
}
del_backup(){
#因所有备份都是全库备,所以按日期删除4天以前的备份数据
cd ${BACKUP_DIR}
find . \( -name "*appendonly*" -o -name "*dump*" \) -mtime +${DEL_DAY} -exec rm -f {} \;
}
#main start
mkdir -p ${BACKUP_DIR}
tt=`date +"%Y%m%d-%H%M%S"` ###按照日期时间格式进行备份
redis_backup
cp_backup
del_backup
2.redis还原
(1)停掉redis
(2)启动redis,重启是因为释放redis内存
(3)解压备份出来的redis备份
(4)拷贝覆盖到正在使用的数据目录里面
(5)再重启redis即可。
redis备份与恢复的更多相关文章
-
Redis 搭建文档,备份及认证
wget http://download.redis.io/releases/redis-3.0.6.tar.gz为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中[root ...
-
数据备份与恢复 半持久化 全持久化 fork aof rdb Backing up Disaster recovery 备份 容灾
Redis数据备份与恢复 - 流年晕开时光 - 博客园 https://www.cnblogs.com/deny/p/11531355.html Redis数据备份与恢复 Redis所有数据都是保存在 ...
-
redis基础操作~~数据备份与恢复、数据安全、性能测试、客户端连接、分区
数据备份与恢复 数据备份redis save 命令用于创建当前数据库的备份. redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文 ...
-
Redis之数据备份与恢复
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...
-
Redis 数据备份与恢复,安全,性能测试,客户端连接,管道技术,分区(四)
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...
-
redis开启持久化、redis 数据备份与恢复
redis持久化介绍 https://segmentfault.com/a/1190000015897415 1. 开启aof持久化.以守护进程启动.远程访问先把配置文件拷贝一份到/etc/redi ...
-
redis数据的备份与恢复
redis数据的备份与恢复 持久化分为两种方式:RDB和AOF 1.1 RDB模式 RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进 ...
-
Redis 数据备份与恢复
Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1: ...
-
redis数据备份与恢复
1.启动redis 进入redis目录 redis-cli 2.数据备份 redis 127.0.0.1:6379> SAVE 该命令将在 redis 备份目录中创建dump.rdb文件. 3. ...
随机推荐
-
夺命雷公狗---微信开发51----网页授权(oauth2.0)获取用户基本信息接口(1)
如果用户在微信客户端访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,从而实现业务逻辑. 一般我们用来“数据采集”,“市场调查”,“投票”,只要授权了第三方网页,微信用户无需注册就可 ...
-
win7里开始菜单属性里的隐私项无法选择解决方法
具体问题如下图,其中的隐私项目呈现灰色无法选择: 解决方法如下: win+R 输入gpedit.msc 回车,[用户配置][管理模板][开始菜单和任务栏],在右侧找到[关闭用户跟踪],双击进入设置界面 ...
-
WPF的UI布局(Layout)WPF读书笔记(第三天)
WPF的布局元素有一下几个 Grid:网格.可以自定义行和列并且通过行列的数目.行高和列宽来调整控件的布局. StackPanel:格式面板.可将包含的元素在水平方向或者竖直方向排成一条线. ...
-
使用c#生成Identicon图片
Identicon是什么 我们在站点注册的时候通常系统会在我们没有提供自定义头像时为我们指定一个默认的头像,不过,样子千篇一律很是难看.聪明的程序员想了很多办法来解决这个问题,比如你能在这里看到很漂亮 ...
-
默认时,销毁会话,session_unset, session_destory
<?php /** 一般我们登录时,开启了会话,就会自动生成 session 有关的文件, 保存有相关的用户登录信息,所以正常情况下得退出登录, 同时也要清空 session 有关的文件和相关的 ...
-
BZOJ2038: [2009国家集训队]小Z的袜子(hose) -- 莫队算法 ,,分块
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 3577 Solved: 1652[Subm ...
-
Scala学习笔记--List、ListBuffer
ListBuffer(列表缓冲) ListBuffer类位于 scala.collection.mutable.ListBuffer val buf = new ListBuffer[Int] va ...
-
android 实现淘宝收益图的折线
实现的效果我一会贴上,我先说下原理,我们知道要实现在canvas上画线,不就是要搞一个paint嘛,然后首先肯定要设置下paint的属性,那么画文字呢,不就是Textpaint吗, 对,就是这么简单, ...
-
docker --Nexus仓库
Nexus 简介 Nexus 是个仓库管理器,目前主要分2大版本:2.X 和 3.X.2.X 主要支持的格式是Maven.P2.OBR.Yum.3.X主要支持的是Docker.NuGet.npm.Bo ...
-
【Oracle-PLsql】使用存储过程,利用table集合类型开发复杂业务报表
在一般的项目中,都需要开发一些报表,少则几个字段,多则几十个字段,需要关联的表可能多达十几.几十张表,如果想要使用一个SQL语句将这几十张表关联起来 查询所需要的字段,当你听到这里的时候,你的脑子可能 ...