Redis命令学习-?Transaction(事务)

?DISCARD

?DISCARD :取消事务,放弃运行事务块内的全部代码。假设在使用WATCH命令监视某个key。则取消监视,等同于UNWATCH。

?返回值:总是返回ok。    ?

?

  1. 127.0.0.1:6379> MULTI
  2. OK
  3. 127.0.0.1:6379> PING
  4. QUEUED
  5. 127.0.0.1:6379> SET greeting "hello"
  6. QUEUED
  7. 127.0.0.1:6379> DISCARD
  8. OK
  9. 127.0.0.1:6379> GET greeting
  10. (nil)

EXEC

?EXEC:运行全部事务块内的命令。

?返回值:事务块内全部命令的返回值,按命令运行的先后顺序运行。

操作被打断时,返回nil。

  1. 127.0.0.1:6379> MULTI
  2. OK
  3. 127.0.0.1:6379> INCR user_id
  4. QUEUED
  5. 127.0.0.1:6379> INCR user_id
  6. QUEUED
  7. 127.0.0.1:6379> INCR user_id
  8. QUEUED
  9. 127.0.0.1:6379> INCR user_id
  10. QUEUED
  11. 127.0.0.1:6379> EXEC
  12. 1) (integer) 1
  13. 2) (integer) 2
  14. 3) (integer) 3
  15. 4) (integer) 4

MULTI

?MULTI :标记一个事务块的開始。

最后由EXEC原子性的运行。

?返回值:总是返回OK。

UNWATCH

?UNWATCH:取消命令对全部key的监视。假设在WATCH命令之后,EXEC或DISCARD命令被运行的话,就不须要运行UNWATCH命令。

  1. 127.0.0.1:6379> UNWATCH
  2. OK
WATCH

?WATCH [key .. ]:监视一个或者多个key。假设在运行事务前,这些key被打断,那么事务运行失败。

?返回值:ok    ?    ?

  1. 127.0.0.1:6379> WATCH lock lock_times
  2. OK
  3. 127.0.0.1:6379> MULTI
  4. OK
  5. 127.0.0.1:6379> SET lock a
  6. QUEUED
  7. 127.0.0.1:6379> INCR lock_times
  8. QUEUED
  9. 127.0.0.1:6379> EXEC
  10. 1) OK
  11. 2) (integer) 1

?

?
时间: 2024-10-06 02:46:20

Redis命令学习-?Transaction(事务)的相关文章

Redis 命令学习

每天不学习点新的东西,感觉就有点会被社会淘汰掉了.也许现在学习的知识会很快忘记,下次学习用到这个知识点的时候,再回来翻记录的笔记,我想这样会比从头再学,效率会高点吧. 闲话不多聊,回归正题.今天学习redis的命令,争取把常用的redis命令都敲一遍. redis命令就是在redi服务上执行的.要想启动redis服务.我是在windows本机上安装的redis.先切换到redis目录 然后启动redis服务. 启动redis redis-cli Redis 键(key) set key conm

redis深入学习(三)-----事务、主从复制、jedis

reids事务 概念 可以一次执行多个命令,本质是一组命令的集合.一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞 作用 一个队列中,一次性.顺序性.排他性的执行一系列命令 常用命令 正常操作事务: 放弃事务: 其实redis对于事务是部分支持: 例如incr k1虽然是错误的(类似于java的运行时异常),但是其他几个结果依然可以成功操作. watch监控 悲观锁/乐观锁/CAS(Check And Set) 1.悲观锁 悲观锁(Pessimistic Lock

Redis命令学习-Set(集合)

1. SADD SADD key member[member ...]:将一个或者多个member计入集合key中去,已经存在集合中的member将会被忽略.计入key不存在,则会创建一个包含member元素的集合.当key不是集合时,返回一个错误. ?返回值:被添加到集合中的元素的个数. 127.0.0.1:6379> SADD bbs "csdn.com" (integer) 1 127.0.0.1:6379> SADD bbs "redis.com"

Redis命令学习—Hash(哈希表)操作

HDEL HDEL key field [field...]:删除Hash key中的一个或多个域, 不存在的域会被忽略. 返回值:被成功删除的key的数量. # 测试数据 redis> HGETALL abbr 1) "a" 2) "apple" 3) "b" 4) "banana" 5) "c" 6) "cat" 7) "d" 8) "dog&qu

Redis命令学习—List(列表)

本文参考:http://redisdoc.com/list/index.html BLPOP BLPOP key[key ...] timeout:BLPOP是列表的阻塞式(blocking)弹出原语.是LPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将会被BLPOP    命令阻塞,直到等待超时,会有可弹出元素为止. 当给定多个key参数的时候,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的头元素. DEl job command request#删除元素 0

Redis命令学习-string类型操作

APPEND key value 如果key已经存在,并且为字符串,那么这个命令会把value追加到原来值的末尾.如果key不存在,首先创建一个空字符串,再执行追加操作. 返回值:返回APPEND后字符串的长度. EXISTS mykey 0 APPEND mykey "Hello" 5 APPEND mykey " world" 11 GET mykey Hello world SETBIT SETBIT key offset value 对key所存储的字符串值

Redis命令学习-SortedSet(有序集合)

?ZADD ZADD key score member[score member ... ]:将一个或多个member元素及其score值加入到有序集key中.如果member已经是有序集合中的值,则更新score.score是整数值,双精度值.如果key不存在,则创建一个有序集合,并加入.如果key不是一个有序集合,则返回一个错误. 返回值:成功添加的数量,不包含已经存在和更新的成员. 127.0.0.1:6379> ZADD page_rank 10 google.com (integer)

Redis学习笔记06Redis命令之(5)事务

1.1.1. multi 开始一个新事务. redis.coe2coe.me:6379> multi OK 执行此命令后,后面执行的set等命令将被缓存,直到被discard命令取消,或者被exec命令提交执行. 一旦执行了multi,再执行的命令,将被缓存到一个执行队列中,而不是立即执行.因此这些命令的执行的结果,再其它客户端连接中是看不到的. 比如: 在连接1中: redis.coe2coe.me:6379> select 0 OK redis.coe2coe.me:6379> ke

Redis学习手册(事务)

概述: 和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制.在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石.相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出Redis中事务的实现特征: 1). 在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,Redis不会再为其它客户端的请求提供任何服务,从而保证了事物中的所有命令被原子的执行. 2). 和关系型数据库中的事务相比,在Redis