返回顶部
首页 > 资讯 > 数据库 >redis学习7---持久化相关测试RDB方式
  • 312
分享到

redis学习7---持久化相关测试RDB方式

2024-04-02 19:04:59 312人浏览 薄情痞子
摘要

1、Redis 只做缓存配置注释掉RDB持久化的配置添加内存配置和回收配置 (maxmemory  和 maxmemory-policy)2、测试RDB持久化2.1、关闭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


您可能感兴趣的文档:

--结束END--

本文标题: redis学习7---持久化相关测试RDB方式

本文链接: https://lsjlt.com/news/41932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis学习7---持久化相关测试RDB方式
    1、redis 只做缓存配置注释掉RDB持久化的配置添加内存配置和回收配置 (maxmemory  和 maxmemory-policy)2、测试RDB持久化2.1、关闭RDB持久化测试编辑配置文件# 关闭...
    99+
    2024-04-02
  • Redis学习笔记(八) RDB持久化
    Redis是内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将存储在内存中的数据库状态保存到磁盘,那么服务器 进程一旦退出,服务器中的数据库状态也会消失不见。 为了解决这个问题,Redis提供了RDB持久化功能,这...
    99+
    2019-01-14
    Redis学习笔记(八) RDB持久化
  • redis两种持久化方式RDB和AOF
    目录 前言 1. Redis 数据库结构 2. RDB 持久化 2.1. RDB 的创建和载入 2.1.1. 手动触发保存 SAVE 命令 BGSAVE 命令 SAVE 和 BGSAVE 的比较 2.1.2. 自动触发保...
    99+
    2021-05-11
    redis两种持久化方式RDB和AOF
  • Redis持久化方式RDB与AOF详解
    前言Redis提供了两种数据存储方式,分别是:cache-only && persistence;cache-only顾名知义,是用与缓存服务的,数据在服务器终止后将消失,在此模式下将不存在...
    99+
    2024-04-02
  • Redis RDB与AOF持久化方式详细讲解
    目录1.RDB持久化1.1 RDB文件的保存1.2 RDB文件的载入1.3 RDB持久化时服务器的状态1.4 RDB持久化策略2.AOF持久化2.1 持久化的实现2.2 文件的载入与数据还原2.3 AOF文件的重写1.R...
    99+
    2022-11-22
    RedisRDB与AOF Redis持久化方式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作