redis学习7---持久化相关测试RDB方式-创新互联
1、redis 只做缓存配置
为企业提供成都网站建设、做网站、网站优化、成都营销网站建设、竞价托管、品牌运营等营销获客服务。创新互联公司拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!注释掉RDB持久化的配置
添加内存配置和回收配置 (maxmemory 和 maxmemory-policy)
2、测试RDB持久化
2.1、关闭RDB持久化测试
编辑配置文件
# 关闭默认的rdb持久化,注释三行,添加一行
#save 900 1
#save 300 10
#save 60 10000
save ""
重启redis服务
设置两个值
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
重启redis服务
发现之前设置的值消失
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
(empty list or set)
说明没有关闭持久化的配置生效了
2.2、开启RDB持久化测试
恢复rdb的持久化配置并重启服务
设置两个值
redis-cli -h 192.168.121.121 -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
192.168.121.121:6379> keys *
1) "k2"
2) "k1"
使用shutdown方式关闭服务
redis-cli -a Redis2019! shutdown
再次启动服务
查看值发现存在
redis-cli -a Redis2019!
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
再设置两个值
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k2"
4) "k1"
使用kill命令杀掉redis进程
再次查看值
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k1"
2) "k2"
发现后边设置的值不见了,说明使用shutdown方式关闭服务,不会丢失数据,但是杀掉进程会丢失数据,为什么呢?
因为通过redis-cli SHUTDOWN这种命令方式去停掉redis,其实是一种安全退出的模式,redis在退出的时候会将内存中的数据立即生成一份完整的rdb快照保存到磁盘中。
redis进程异常被杀掉,数据没有进dump文件,几条最新的数据就丢失了。
设置save,save 5 1(每五秒钟如果有超过1个key发生变化,则基于现在缓存中的数据进行一个dump.rdb快照)
重启服务
设置两个值
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> set k5 v5
OK
127.0.0.1:6379> set k6 v6
OK
设置值之后等待5秒杀掉redis进程
启动服务
查看值,发现新设置的值存在
redis-cli -a Redis2019!
Warning: Using a password with '-a' option on the command line interface may not be safe.
127.0.0.1:6379> keys *
1) "k5"
2) "k6"
3) "k1"
4) "k2"
2.3、save bgsave以及定时备份rdb文件
备份redis可以手动使用SAVE命令,执行SAVE命令会使用主进程执行快照操作,这意味着在SAVE的过程中,会阻塞主进程。
另一种操作是使用BGSAVE,使用BGSAVE的话redis会fork出一个子进程来执行快照操作,而不影响主进程。
首先删除所有的key
然后设置新值
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
如果kill掉redis进程,按说设置的key都会消失
但是执行save
127.0.0.1:6379> save
OK
杀掉redis进程,然后启动redis服务
查看key,发现值还在
127.0.0.1:6379> keys *
1) "k2"
2) "k1
发现存在说明save成功
设置新key并执行bgsave
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> bgsave
Background saving started
杀掉redis进程,然后启动redis服务
查看key
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k1"
4) "k2"
发现新建的key存在说明bgsave成功
2.4、定时执行脚本把rdb文件备份到远程服务器(前提是rsync主备机已经安装配置完成,且做了主备的免密登陆)
备份rdb文件到备机是为了万一主机redis数据丢失,可以恢复一定时间之前的数据。
mkdir /data/usr/shell
vi /data/usr/shell/redis_backrdb.sh
#!/bin/bash
REDIS_DIR=/data/usr/redis-4.0.11/data
now="$(date -d'+0 day' +'%Y%m%d%H%M%S')"
REDIS_PW=Redis2019!
redis-cli -a $REDIS_PW save
[ $? -eq 0 ] && {
cp $REDIS_DIR/dump.rdb $REDIS_DIR/dump_${now}.rdb
rsync -avz $REDIS_DIR/dump_${now}.rdb root@192.168.121.122:/backup
}
写定时任务,每天凌晨0点5分执行备份操作。
crontab -e
5 0 * * * /bin/sh /data/usr/shell/redis_backrdb.sh &>/dev/null
参考:
https://blog.csdn.net/baidu_41669919/article/details/79596209
https://cloud.tencent.com/info/0420774e51445c7dbc75dcb1ff6fe49c.html
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:redis学习7---持久化相关测试RDB方式-创新互联
分享URL:http://ybzwz.com/article/djipco.html