Redis的ACID

举报
周杰伦本人 发表于 2022/06/26 14:49:25 2022/06/26
【摘要】 Redis的ACID 原子性 一致性 隔离性 持久性 总结 ❤️ 感谢大家 Redis的ACID 原子性因为redis包含事务队列保存命令,所以它具有原子性。 事务队列中的所有命令都将执行或根本不执行。 如果在运行时发生错误,则redis不支持事务回滚。 命令发生错误不会影响下一个命令的执行。 一致性redis从三个方面保证事务的一致性入队时命令不存在或格式错误。 redis不会将此命令置...

Redis的ACID

原子性

因为redis包含事务队列保存命令,所以它具有原子性。 事务队列中的所有命令都将执行或根本不执行。 如果在运行时发生错误,则redis不支持事务回滚。 命令发生错误不会影响下一个命令的执行。

一致性

redis从三个方面保证事务的一致性

入队时命令不存在或格式错误。 redis不会将此命令置于事务队列中。

如果命令在运行时发生错误,则这些错误命令不会对数据库进行任何更改,以确保一致性

如果服务器停止,则在服务器未持久化且重新启动后,数据明显匹配。 在RDB模式下,根据现有的RDB文件恢复数据以保持一致性。 在AOF模式下,通过AOF文件保持一致性。

隔离性

Redis是隔离的,因为它在单线程上执行事务,并串行执行事务

持久性

很明显,如果redis不是持久化的,事务也不是持久化的。 在RDB模式下,不会立即进行BGSAVE保存,因此也不能保证持久性。 在AOF模式下,appendfsync选项设置为always,程序在执行命令后调用同步函数以确保持久性。

总结

这就是redis的ACID,它具有原子性一致性和隔离性,在appendfsync选项设置为always的时候就有持久性。redis不支持事务回滚,而mysql的undolog日志保证事务的回滚操作,redo log将最细数据保存,从而保证事务的持久性,binlog用来记录数据库的更新数据的信息,查询数据的信息不会记录,它主要用于数据宕机的时候的数据恢复和主从复制。

redis 的事务的内容大概就这么多,让我们一起了解redis原理,一起运用到工作学习中去吧,谢谢大家的支持和鼓励,继续加油,继续努力,redis很重要,我们需要深入了解它。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
  3. 有不当之处欢迎批评指正。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。