美文网首页
redis事务

redis事务

作者: SetsunaHao | 来源:发表于2018-10-11 14:26 被阅读0次

什么是事务?
很多件事情按顺序一起执行,都成功了,就算完成了事务,否则就恢复如初,像没有执行过一样。

SET A 1000
SET B 2000
DECRBY A 100 (step 1)
INCRBY B 100 (step 2)

如果step1政策执行,step2发生异常那么
A 结果为 900
B 结果为 1000

自认为正确的解决方式

MULTI 
DECRBY A 100
INCRBY B 100
EXEC

然而实际上

MUlTI
SET a 100
INCRY b 1.22 (此行会报错)
SET a 200
EXEC

SET a 200 依然会被执行

MULTI 开始一个事务,将事务加入执行队列
EXEC 执行事务

Redis的事务并不是原子的,它并不支持回滚
使用DISCARD可以取消事务

MULTI
SET a 100
DISCARD

watch指令:

命令用于监视一个(或多个) key ,
如果在事务执行之前这个(或这些) key 被其他命令所改动,
那么事务将被打断
SET a 1
WATCH a 
SET a 2
MULTI
SET a 3
EXEC
GET a

结果 : a = 2
因为之前执行了watch在后面的事务中,a的值将保持2,
使用UNWATCH可取消监控

相关文章

  • redis系列(十):事务

    redis有事务么? redis官方说是有事务的。但这个事务不是我们普遍理解的mysql事务。 redis的事务不...

  • 九、Redis 事务

    Redis 事务 Redis事务描述: Redis事务允许在单个步骤中执行一组命令。以下是Redis事务的两个属性...

  • Redis事务

    redis事务机制 Redis事务与传统关系型事务的比较

  • Redis事务

    转载自Redis之Redis事务 Redis事务的概念: Redis 事务的本质是一组命令的集合。事务支持一次执行...

  • redis中的事物、消息订阅、持久化

    Redis 中的事务 Redis支持简单的事务 Redis与 mysql事务的对比 注: rollback与dis...

  • Redis简单操作记录

    Redis事务 1.Redis事务本质:一组命令的集合,加入队列,然后执行,执行完事务结束。 redis事务: ①...

  • JavaGuide知识点整理——Redis面试题总结(下)

    Redis事务 如何使用Redis事务? Redis可以通过multi,exec,discard和watch等命令...

  • redis 常用指令

    Redis 的事务 Redis 的事务处理与 RDBMS 的事务有一些不同。首先 Redis 不支持事务的回滚机制...

  • Redis学习笔记:事务

    Redis学习笔记:事务 原文链接:Redis学习笔记:事务 一、事务的描述 和MySQL一样,Redis中也有事...

  • 事务

    简介 MULTI、EXEC、DISCARD、WATCH是redis事务的基础。事务特征如下: redis事务允许将...

网友评论

      本文标题:redis事务

      本文链接:https://www.haomeiwen.com/subject/qysbaftx.html