研究reids与使用已经有几个月的时间,中间自己总结了不少文档以及相关资料,接下来时间,会陆续分享一些相关资料,并且介绍其在我们应用中的使用情况。下面是redis事物的相关介绍(参考redis.io):
一.事物的使用1.Redis事物通过MULTI命令开始。 这条命令总是返回OK。2.然后用户可以执行多条指令,redis不会马上执行这些指令,还只是放入到队列中。3.当执行exec指令时,所有的指令执行。4.调用discard指令,将会flush事物队列,并且退出事物。如下:redis 127.0.0.1:6379> multiOKredis 127.0.0.1:6379> set foo 1QUEUEDredis 127.0.0.1:6379> incr fooQUEUEDredis 127.0.0.1:6379> incr fooQUEUEDredis 127.0.0.1:6379> exec1) OK2) (integer) 23) (integer) 3 从以上会话中能看到multi命令返回的回复是一个数组,每个元素即是事物中每条指令的回复,并且跟指令发布的顺序一样。当redis连接在multi请求下,所有的命令回复都是queued,除非这条指令的语句法不正确。而一些指令语法正确,但执行阶段出错也是允许的。如以下redis 127.0.0.1:6379> multiOKredis 127.0.0.1:6379> set t 13QUEUEDredis 127.0.0.1:6379> lpop tQUEUEDredis 127.0.0.1:6379> exec1) OK2) (error) ERR Operation against a keyholding the wrong kind of value对于这种err,需要客户端给予合理的提示。需要注意的是,所有在队列中的指令都会被执行,redis不会终止指令的执行。
二.取消队列指令Discard为取消命令队列。可以终断一个事物。不会有命令会被执行,并且连接的状态是正常的。如:> SET foo 1OK> MULTIOK> INCR fooQUEUED> DISCARDOK> GET foo"1"
基于tungsten API 同步mysql binlog出现EOF packet received的问题解决基于Redis分布式缓存实现相关资讯 Redis Redis介绍 Redis应用
- Redis 非关系型数据库 ( Nosql ) (07月01日)
- Java中使用Jedis操作Redis (04月08日)
- MongoDB仲裁节点的理解及Memcached (02月13日)
| - 关于 Redis的订阅发布 (04月15日)
- Redis初级介绍 (03月23日)
- 在Ubuntu 14.04下安装Redis (01月31日)
|
本文评论 查看全部评论 (0)