专栏首页InvQ的专栏Redis的事务处理机制

Redis的事务处理机制

事务机制

  • 1、首先 Redis 不支持事务的回滚机制(Rollback),这也就意味着当事务发生了错误(只要不是语法错误),整个事务依然会 继续执行下去,直到事务队列中所有命令都执行完毕。在Redis 官方文档中说明了为什么 Redis 不支持事务回滚。
  • 2、Redis 是单线程程序,在事务执行时不会中断事务,其他客户端提交的各种操作都无法执行,因此你可以理解为 Redis 的事务处理是串行化的方式,总是具有隔离性的。

持久化

另外,Redis 是内存数据库,与基于文件的 RDBMS 不同,通常只进行内存计算和操作,无法保证持久性。不过 Redis 也提供了两种持久化的模式,分别是 RDB 和 AOF 模式。

  • RDB(Redis DataBase)持久化可以把当前进程的数据生成快照保存到磁盘上,触发 RDB 持久化的方式分为手动触发和自动触发。因为持久化操作与命令操作不是同步进行的,所以无法保证事务的持久性。
  • AOF(Append Only File)持久化采用日志的形式记录每个写操作,弥补了 RDB 在数据一致性上的不足,但是采用 AOF 模式,就意味着每条执行命令都需要写入文件中,会大大降低 Redis 的访问性能。启用 AOF 模式需要手动开启,有 3 种不同的配置方式,默认为 everysec,也就是每秒钟同步一次。其次还有 always 和 no 模式,分别代表只要有数据发生修改就会写入 AOF 文件,以及由操作系统决定什么时候记录到 AOF 文件中。 虽然 Redis 提供了两种持久化的机制,但是作为内存数据库,持久性并不是它的擅长。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis为什么会这么快?

    Redis 属于键值(key-value)数据库,键值数据库会使用哈希表存储键值和数据,其中 key 作为唯一的标识,而且 key 和 value 可以是任何的...

    MickyInvQ
  • Linux下安装maven3.6.2遇到的问题

    安装Maven之前,首先要正确安装JDK,JDK确认1.8.0无误后, 首先进入Apache maven官网:https://maven.apache.org...

    MickyInvQ
  • jquery param 数据 数组参数序列化

    浏览器中输入url localhost:8080/localTest.action?names%5B%5D=zhangsan,lisi,wangmazi

    MickyInvQ
  • redis_学习_02_redis 可视化工具 Redis Desktop Manager

    shirayner
  • map/unordered_map基础用法

    它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key, value>的键值对,ma...

    于小勇
  • 干货 | 携程Redis治理演进之路(二)

    本文为联合撰稿,作者团队包括:布莱德,携程技术专家;向晨,携程数据库专家;骋成,携程技术专家;小峰,携程高级软件工程师。

    携程技术
  • pytest文档34-Hooks函数改变用例执行顺序(pytest_collection_modifyitems)

    有一些小伙伴一直想改变pytest用例的执行顺序,实际上我们在用例设计原则上用例就不要有依赖顺序。 pytest默认执行用例是先根据项目下的文件夹名称按asci...

    上海-悠悠
  • python实现高性能mock服务

    昨天的文章详细的介绍了mock,今天补充一个mock服务的实际使用场景——高并发性能测试时的依赖服务mock;

    用户5521279
  • ASP.NET 2.0 Virtual Earth Map Control

    Microsoft Virtual Earth API 3.0中新增的一项强大的功能使用GeoRSS, GeoRSS提供了一种地理位置搜索与聚合的方案,并且可以...

    张善友
  • Python 函数式编程

    py3study

扫码关注云+社区

领取腾讯云代金券