zoukankan      html  css  js  c++  java
  • Redis事物特点和持久化方式

    Redis的事物不支持完整的ACID,Redis虽然提供事物功能,但是Redis的事物和关系数据库事务不可同日而语,Redis的事物只能保证隔离性和一致性(I和C),无法保证原子性和持久性(A和D),具体实现原理如下:

    • 原子性  

           Redis事物不支持原子性,Redis不支持回滚操作,事物中间一条命令执行失败,既不会导致前面已经执行的命令回滚,也不会中断后面的命令的执行。

    • 一致性

           Redis事物能够保证事物开始之前和事物结束以后,数据库的完整性没有被破坏

    • 隔离性

          Redis不存在多个事物的问题,因为Redis是单进程单线程的工作模式,这种隔离性的方式也带来了一个隐含的问题,如果某个客户端通过事物提交了大量的命令,那么阻塞其他客户端进行任何操作

    • 持久性

           Redis提供了两种持久化的方式,即RDB和AOF

           RDB 持久化只备份当前内存中的数据集,事物执行完毕时,其数据还在内存中,并未立即写入磁盘,所以RDB 持久化不能保证Redis事物的持久性

           AOF持久化是先执行命令,执行成功后再将命令追加到日志文件中,即使AOF每次执行命令后立刻将日志文件刷盘,也可能丢失1条命令数据,因此AOF也不能严格保证Redis事物的持久性

  • 相关阅读:
    Codeforces Round #246 (Div. 2):B. Football Kit
    iOS8使用TouchID
    HDU 1796 How many integers can you find(容斥原理+二进制/DFS)
    MapReduce的Reduce side Join
    Android入门级编译错误汇总
    当往事已随风
    静态链表的C++实现
    《跨界杂谈》企业商业模式(三):集约
    C
    Android插屏动画效果
  • 原文地址:https://www.cnblogs.com/anqli-java/p/9942163.html
Copyright © 2011-2022 走看看