redis中如何保证原子性


本文摘自PHP中文网,作者尚,侵删。

原子性:

原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。

对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。

Redis操作原子性的原因:

Redis的操作之所以是原子性的,是因为Redis是单线程的。

Redis在并发中的表现:

Redis的API是原子性的操作,那么多个命令在并发中也是原子性的吗?

有以下代码:

1

2

3

4

5

6

7

$redis= newRedis();

$redis->connect('127.0.0.1',6379);

for($i= 0;$iget('val');

$num++;

$redis->set('val',$num);

usleep(10000);

}

用两个终端执行上面的程序,发现val的结果是小于2000的值,那么可以知道,在程序中执行多个Redis命令并非是原子性的,这也和普通数据库的表现是一样的。

阅读剩余部分

相关阅读 >>

redis中如何保证原子性

更多相关阅读请进入《redis如何保证原子性》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...