FWQ
Redis数据库高级实用特性:事务控制
Redis数据库高级实用特性:事务控制 0浏览 收藏 亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Redis数据库高级实用特性:事务控制》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下Redis数据库,希望所有认真读完的童鞋们,都有实质性的提高。 Redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个client发来的命令后会立即处理并 返回处理结果,但是当一个client在一个连接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然后此连接就 结束事务上下文。 1、简单事务控制 下面可以看一个例子: redis 127.0.0.1:6379> get age “33” redis 127.0.0.1:6379> multi OK redis 127.0.0.1:6379> set age 10 QUEUED redis 127.0.0.1:6379> set age 20 QUEUED redis 127.0.0.1:6379> exec 1) OK 2) OK redis 127.0.0.1:6379> get age “20” redis 127.0.0.1:6379> 从这个例子我们可以看到2个set age命令发出后并没执行而是被放到了队列中。调用exec后2个命令才被连续的执行,最后返回的是两条命令执行后的结果。 2、如何取消一个事务 我们可以调用discard命令来取消一个事务,让事务回滚。接着上面例子:…