Redis学习第四天

呼呼呼!第四天作者早上为了不吵醒舍友,没收拾书包就走了,早上!今天就开始使用Redis了,加油!

 SELECT+库索引  切换数据库

Redis事务 

一致性更深方面就是数据库状态在事务提交前后保持不变!

multi单独一行,直接开始事务。然后所有的操作都会被放到队列中,不会被立即执行。

Redis持久化概要

AOF能确保事务的持久性!为什么呢?下文就讲到啦! 上面的命令作者没有用,就直接跑到redis.conf文件修改去了,理论上来说二者皆可。

RDB方式:先自定义保存目录,设置保存文件.rbd名称。

基于某些条件才能触发RDB持久化方式!

Redis数据持久化

一个是追加文件,一个是快照。

日志记录命令set....,不记录get等读取命令!AOF缓冲区在内存当中,每隔一段时间(很短)缓冲区的内容都会写入到日志文件中,这样就实现了持久化。

啊,作者遇到错误了,redis服务打不开,忙碌了半个小时,气死了!!!

给大家建议,遇到错误不要怕,不要烦,现在gpt很强,你只需要跟着做就行。对于redis,最好先在redis.conf配置文件中找logfile,默认是“ ”,也就是不产生log日志文件,那错误就难找了呀!所以我们先修改一波,我直接放在当前目录redis-7.2.1里了,如下:

redis.conf下面就是新配置的Log日志文件,然后查看,交给gpt,发现重点是:

# Warning: Could not create server TCP listening socket 0:0:0:0:6379: Name or service not known
# Failed listening on port 6379 (tcp), aborting.

这些日志条目表示Redis尝试在地址0:0:0:0的端口6379上创建TCP监听套接字时失败了。涉及到地址问题: 0:0:0:0看起来像一个不正确的IPv6地址。你可能需要确保你的redis.conf文件中的bind配置项正确地设置为IPv4地址0.0.0.0或其他有效的地址。作者发现,bind确实写成0:0:0:0的形式了,不知道为什么会这样,反正修改后成功运行服务了!

新版好像不是单独的.aof文件了,作者的情况是这样的:

在redis7中貌似被设为文件夹形式,然后就是模拟数据丢失,在Redis中使用flushall命令,然后发现.aof存储了flushall命令:

所以说,要恢复原来的数据,就要删除.aof文件中的刷新指令,否则最后同样会被刷新,没有什么意义。vim修改过后,模拟宕机,把redis重启,结果居然tm真还原了!这下真的是永久化存储了!

注意是二进制,不能查看,.aof是文本形式,虽然看不懂但是可以查看可以修改。核心概念是快照

如果系统出错,重新启动的时候就会读.rdb文件,从而恢复数据。

实时存储,使用AOF;定期存储,使用RDB。

Redis支持两种主要的持久化方法:RDB (Snapshotting) 和 AOF (Append-Only File)。这两种持久化方式旨在满足不同的需求和场景。下面是它们的主要特点和适用的场景:

RDB (Snapshotting)

特点:

  • RDB执行快照持久化,它将整个内存中的数据集保存到磁盘中,生成一个二进制文件(例如dump.rdb)。
  • 它可以配置为在指定的时间间隔内,当满足指定数量的写操作时执行。
  • 文件小,恢复快,非实时

应用场景:

  • 备份 & Disaster Recovery: 如果你需要定期备份你的Redis数据,RDB是一个非常好的选择。你可以很方便地将RDB文件备份到其他服务器或存储服务上。

  • 快速数据恢复: 由于RDB是一个单独的文件,Redis启动时,使用RDB恢复数据会比AOF要快得多。

  • 数据分析: 你可以很容易地将RDB文件转移到其他服务器,然后在那里执行数据分析操作,而不会影响生产Redis服务器的性能。

AOF (Append-Only File)

特点:

  • AOF持久化会记录服务器接收到的所有写操作命令,并将它们写入AOF文件。当Redis重启时,它可以通过重新执行文件中的命令来重建数据集。

  • AOF文件是一个纯文本文件,可以轻松地读取或修复。

  • Redis提供了三种不同的同步策略:每秒同步、每写入操作同步、或者完全不同步。

  • 文件大,恢复慢,实时

应用场景:

  • 数据安全性: 如果你不能承受数据丢失,AOF可能是一个更好的选择。通过配置为每次写入操作都同步,可以确保不会丢失任何数据。

  • 数据完整性: AOF会记录每一次写操作,所以即使在发生故障时,你也只会丢失最近的一次写操作。

  • 可解释的日志: 由于AOF是一个纯文本文件,它可以被审查和解释,帮助诊断问题。

总结

  • 如果需要最高级别的数据安全性,应使用AOF

  • 如果对数据恢复速度有要求,RDB可能是更好的选择。

  • 在许多实际应用中,人们经常同时使用RDB和AOF,以便结合两者的优点。例如,RDB可以为灾难恢复提供快照,而AOF可以确保数据完整性。

如果同时使用:

- 在Redis故障恢复时,AOF会优先于RDB,因为AOF提供更高的数据完整性。

- 事实上,当两者都被配置时,AOF是主要的持久化策略,而RDB则可以被看作是数据备份或迁移的策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joy T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值