Redis中不同持久化方式的差异对比

 更新时间:2024年03月27日 09:44:59   作者:ayzen1988  
大家应该都知道,Redis持久化方式主要有两种:RDB(Redis DataBase)和AOF(Append-only file),但是他们各自存储了什么内容?有什么差异呢?今天我来给大家做个小试验,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

前言

大家应该都知道,Redis持久化方式主要有两种:RDB(Redis DataBase)和AOF(Append-only file)。

但是他们各自存储了什么内容?有什么差异呢?今天我来给大家做个小试验。

前期准备,需要安装好docker、docker-compose的运行环境。

一、安装Redis

1、创建相关目录,执行如下命令。

mkdir -p /docker/redis/{data,log}
cd /docker/redis

2、编写yaml文件,内容如下;version替换成自己的docker-compose版本。

vim docker-compose.yaml
version: '2.2.2'
services:
  redis:
    image: redis
    container_name: redis
    user: redis
    restart: always
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
      - ./log:/var/log/redis
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    networks:
      - mynet
 
networks:
  mynet:
    name: mynet
    driver: bridge

3、编写配置文件,内容如下。

vim redis.conf
# 绑定的IP地址,若想监听所有网卡则可以注释掉(默认只监听本地环回接口)
# bind 127.0.0.1
 
# Redis服务器运行的TCP端口
port 6379
 
# 是否以守护进程模式运行
daemonize no
 
# PID文件位置
pidfile /var/run/redis-server.pid
 
# 日志文件位置
logfile "/var/log/redis/redis-server.log"
 
# 数据库的数量,默认是16个
databases 16
 
# 持久化选项
# RDB快照配置
save 1 1
save 900 1
save 300 10
save 60 10000
 
# AOF持久化开关
appendonly no
 
# AOF重写条件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
 
# 日志级别
loglevel notice
 
# TCP连接超时时间(秒)
timeout 0
 
# 客户端闲置多长时间后断开连接(秒)
tcp-keepalive 300

4、启动服务,执行如下命令。

docker-compose up -d

5、检查服务是否正常启动,执行如下命令。

docker-compose ps -a

正常情况会返回类似如下内容。

6、如果有服务启动失败,可以使用如下命令排查问题。

docker logs redis

7、至此,Redis安装完成并且已正常运行。

二、测试RDB(Redis DataBase)

1、修改配置文件,开启RDB模式关闭AOF模式,内容如下。

# 持久化选项
# RDB快照配置
 
# 这意味着如果Redis服务器在900秒(15分钟)内至少有一个键的数据发生变化,它将会执行一次RDB持久化操作。
save 900 1
 
# 这个设置指,在300秒(5分钟)内如果有至少10个不同的键发生了变化,Redis也会创建一个新的RDB文件并将其保存到磁盘。
save 300 10
 
# 这个规则则表明,即使在很短的时间窗口内(60秒,即1分钟),只要有10000次(任何数量的变化都可以视为达到该阈值,因为通常情况下1分钟内不会发生如此大量的变更)键的变化,Redis也将执行持久化。
save 60 10000
 
# AOF持久化开关
appendonly no

2、重新启动Redis,执行如下命令。

docker-compose down && docker-compose up -d

 3、进入Redis客户端,执行如下命令。

docker exec -ti redis redis-cli

4、进行一些简单的操作,设置key、删除key,执行类似如下的命令。

set t1 max
set t1 hello-max
set t1 world-max

5、查看RDB文件,执行如下命令。

cat data/dump.rdb

返回内容如下。

从文件中可以看出来,只记录了最后一次设置的key跟value。

6、删除t1,然后再查看文件内容如下。

从文件中已经看不到t1的记录了。

7、至此,RDB模式已测试完成。

三、测试AOF(Append-only file)

1、修改配置文件,开启AOF模式关闭RDB模式,内容如下。

# 持久化选项
# RDB快照配置
# RDB配置全部注释掉
#save 900 1
#save 300 10
#save 60 10000
 
# AOF持久化开关
appendonly yes

 2、重新启动Redis,执行如下命令。

docker-compose down && docker-compose up -d

3、进入Redis客户端,执行如下命令。

docker exec -ti redis redis-cli

4、进行一些简单的操作,设置key、删除key,执行类似如下的命令。

set t1 max
set t1 hello-max
set t1 world-max
del t1

5、查看AOF文件,执行如下命令。

cat data/appendonly.aof

返回内容如下。

从文件中可以看出来,每次的操作都有记录。

6、至此、AOF模式已测试完成。

总结

Redis持久化方式主要有两种:RDB(Redis DataBase)和AOF(Append-only file)。

1、RDB(Redis DataBase)

  • 保存了某个时间点上的数据快照,对于恢复数据来说比较快。
  • 占用空间相对较小,节省磁盘空间。

2、AOF(Append-only file)

  • 记录Redis执行的每个写命令,保证了每个写操作都能被持久化,从而提高了数据安全性。
  • 文件是一个文本文件,易于阅读和理解,对于排查问题有帮助。
  • 因为记录了每个写操作,所以AOF文件通常比RDB文件大。

到此这篇关于Redis中不同持久化方式的差异对比的文章就介绍到这了,更多相关Redis持久化方式差异内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • redis批量删除指定前缀key四种方法(收藏)

    redis批量删除指定前缀key四种方法(收藏)

    这篇文章主要介绍了redis批量删除指定前缀key四种方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-03-03
  • Redis Cluster集群主从切换的踩坑与填坑

    Redis Cluster集群主从切换的踩坑与填坑

    这篇文章主要介绍了Redis Cluster集群主从切换的踩坑与填坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 详解Redis集群搭建的三种方式

    详解Redis集群搭建的三种方式

    Redis是一个开源的key-value存储系统,大部分互联网企业都用来做服务器端缓存。Redis在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,没法满足业务的需求,所以Redis在3.0版本以后就推出了集群模式。
    2021-05-05
  • MyBatis缓存和二级缓存整合Redis的解决方案

    MyBatis缓存和二级缓存整合Redis的解决方案

    这篇文章主要介绍了MyBatis缓存和二级缓存整合Redis,将MyBatis缓存和二级缓存整合Redis,可以提高查询效率,同时也能保证数据的可靠性和一致性,需要的朋友可以参考下
    2023-07-07
  • CentOS下Redis数据库的基本安装与配置教程

    CentOS下Redis数据库的基本安装与配置教程

    这篇文章主要介绍了CentOS下Redis数据库的基本安装与配置教程,Redis一般被用作基于内存的缓存式数据存储,要的朋友可以参考下
    2015-12-12
  • Linux快速部署Redis

    Linux快速部署Redis

    这篇文章介绍了Linux下快速部署Redis的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • redis++的编译?安装?使用方案

    redis++的编译?安装?使用方案

    这篇文章主要介绍了redis++的编译?安装?使用方案的相关资料,需要的朋友可以参考下
    2023-03-03
  • Redis基本数据类型Set常用操作命令

    Redis基本数据类型Set常用操作命令

    这篇文章主要为大家介绍了Redis基本数据类型Set常用操作命令,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • redis数据类型_动力节点Java学院整理

    redis数据类型_动力节点Java学院整理

    这篇文章主要介绍了redis数据类型,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Windows系统设置Redis服务使其开机自启动

    Windows系统设置Redis服务使其开机自启动

    Redis是一种键值对数据库,也称为内存数据库,因为它可以将数据存储在内存中,而不是在磁盘上,下面这篇文章主要给大家介绍了关于Windows系统设置Redis服务使其开机自启动的相关资料,需要的朋友可以参考下
    2024-01-01

最新评论

?


http://www.vxiaotou.com