Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
原子性(atomicity):一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。
原子操作是指你的一个业务逻辑必须是不可拆分的。
比如你给别人转钱,你的账号扣钱,别人的账号增加钱,这个业务逻辑就是原子性的,这个操作就是原子操作,要么都成功要么都失败。
Redis所有单个命令的执行都是原子性的。
redis 实现事务的原理
1. 批量操作在发送 EXEC 命令前被放入队列缓存
2. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令都不会被执行
3. 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中