Redis 事务

相关命令:

    MULTI, EXEC, WATCH, UNWATCH

Redis事务与传统关系型数据库事务的区别:

    在关系型数据库中, 用户首先向数据库发送BEGIN,然后执行各个相互一致的写操作和读操作,最后用户可以选择发送COMMIT来确认之前的操作,或者发送ROLLBACK来放弃之前的操作。

    Redis的事务以特殊命令MULTI为开始,之后跟着用户传入的多个命令,最后以EXEC结束。但是由于这种简单的事务在EXEC被调用之前不会执行任何实际操作,所以用户将没有办法根据读取到的数据来做决定。

    Redis在执行事务的过程中,会延迟执行已入队的命令直到客户端发送EXEC命令为止。这种“一次性发送多个命令,然后等待所有回复出现”的做法叫做“流水线”, 它可以通过减少客户端与Redis服务器之间的网络通信次数来提升执行多个命令时的性能。

为什么Redis没有实现典型的加锁功能?

    传统关系型数据库加锁功能的缺点在于:持有锁的客户端执行越慢,其他等待的客户端被阻塞的时间就越长。

    Redis为了避免客户端的长时间等待,并不会在执行WATCH命令时为数据加锁。只会在数据已经被其他客户端抢先修改的情况下通知执行了WATCH命令的客户端,这种方式被称为乐观锁,而关系型数据库执行的加锁操作被称为悲观锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值