您的位置:首页 > 数据库 > Redis

redis事务

2015-03-04 16:17 169 查看
redis 对事务的支持目前还比较简单。redis 只能保证一个 client 发起的事务中的命令可以连续的 执行,而中间不会插入其他 client 的命令。 由于 redis 是单线程来处理所有 client 的请求的所以做到 这点是很容易的。 一般情况下 redis 在接受到一个 client 发来的命令后会立即处理并返回处理结果,但是当一个 client 在一个连接中发出 multi 命令后,这个连接会进入一个事务上下文,该连接后续的命令并不是 立即执行,而是先放到一个队列中。当从此连接受到 exec
命令后,redis 会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给 client.然后此连接就结束事务上下文。我们可以调用 discard 命令来取消一个事务。discard 命令其实就是清空事务的命令队列并退出事务上 下文。 虽说 redis 事务在本质上也相当于序列化隔离级别的了,但是由于事务上下文的命令只排队并不 立即执行,所以事务中的写操作不能依赖事务中的读操作结果。 事务的缺陷 如果事务中的一个命令失败了,并不回滚其他命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: