redis 学习手册之事务 transaction 操作

事务操作

概述

Redis事务让一组命令在单个步骤中执行。

事务中有两个属性,这说明如下:

在一个事务中所有命令按顺序执行,作为一个单一独立的操作。

Redis事务也是原子的。原子就意味着要么所有命令都执行,要么都不进行处理。

 

但是Redis的Transactions提供的并不是严格的ACID的事务,在执行中服务器宕机,那么会有一部分命令执行了,剩下的没执行)

 

Redis还提供了一个Watch功能,你可以对一个key进行Watch,然后再执行Transactions,在这过程中,如果这个Watched的值进行了修改,那么这个Transactions会发现并拒绝执行。这个功能可以防止别人修改的数据被覆盖。

命令

命令原型

时间

命令描述

返回值

MULTI

O(1)

开启事务
其他操作命令返回QUEUED
若语法失败,直接返回失败命令

返回OK,其他值为失败信息

EXEC

O(1)

提交事务

返回OK

 

 

实例

#A客户端链接redis数据库

[root@datahubdb1 bin]# ./redis-cli -a daphne

127.0.0.1:6379>

#开始事务

127.0.0.1:6379> multi

OK

#添加执行命令

127.0.0.1:6379> set transaction1testtransaction

QUEUED

127.0.0.1:6379> get transaction1

QUEUED

127.0.0.1:6379> incr iindex

QUEUED

#提交事务

127.0.0.1:6379> exec

1) OK

2) "testtransaction"

3) (integer) 1

127.0.0.1:6379>

 

127.0.0.1:6379> multi

OK

127.0.0.1:6379> del transaction1

QUEUED

127.0.0.1:6379> get transaction1

QUEUED

#添加失败的语法

127.0.0.1:6379> get1 transaction1

(error) ERR unknown command 'get1'

127.0.0.1:6379> exec

#提交事务失败,说明keytransaction1 已经不存在了,不能get

(error) EXECABORT Transaction discardedbecause of previous errors.

127.0.0.1:6379>

您觉的有所收获,请保持持续的关注。
您发现博客中有的纰漏,请指正。
您有更好的建议或更好的实现方式,请赐教。(zhenyun.su@qq.com)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值