常见的Redis面试"刁难"问题-附个人实操之四

之前在某个公众号下看到老钱的一篇文章,题目是《十个常见的Redis面试“刁难”问题》,感觉写的很好,不过里面的解答对于我这种小白来说并不是很全面,所以在这里实际操作、思考一番,并把自己的所得简单记录下来。

原文参考:https://mp.weixin.qq.com/s/Z4a8wbWvPDGFTkKJH0X9VQ

Redis的事务了解吗?
MULTI,EXEC操作:事务的开始和结束标记
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 1
QUEUED
127.0.0.1:6379> set k2 1
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> get k1
"1"
127.0.0.1:6379> get k2
"1"
127.0.0.1:6379> 

执行Multi命令,redis反馈ok表示开始事务;执行EXEC命令,结束事务,开始顺序执行事务中的操作。

错误处理

语法错误:执行命令不存在或参数不对,都是语法错误,只有事务中有一处错误,redis执行exec命令后,会直接返回错误,正确的命令也不会被执行。 — 下面例子是输错命令了,所以全部都不执行

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set name zhangsan
QUEUED
127.0.0.1:6379> set sex nan
QUEUED
127.0.0.1:6379> ssas aget 1
(error) ERR unknown command 'ssas'
127.0.0.1:6379> exec
(error) EXECABORT Transaction discarded because of previous errors.
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> 

运行错误:此类错误执行命令没错,但是操作对应的键有误,会造成运行时才会发现的错误,但是不影响其它正确命令的执行。

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k 10
QUEUED
127.0.0.1:6379> sadd k 20
QUEUED
127.0.0.1:6379> set k 200
QUEUED
127.0.0.1:6379> exec
1) OK
2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
3) OK
127.0.0.1:6379> get k
"200"
127.0.0.1:6379> 

这种运行时错误,可以看到,不影响整体的执行

WATCH命令

监控指定键,若被监控的键在以下事务执行前被修改,则包含对此键有操作动作的事务不执行,返回nil。

127.0.0.1:6379> set k 30
OK
127.0.0.1:6379> get k
"30"
127.0.0.1:6379> 
127.0.0.1:6379> watch k
OK
127.0.0.1:6379> set k 40
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k 50
QUEUED
127.0.0.1:6379> exec
(nil)
127.0.0.1:6379> get k
"40"
127.0.0.1:6379> 

可以看到,如果watch的key在事务执行前被修改了,事务就不会执行,exec返回的是nil,key对应的value也不修改,依然是事务之外设置的值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤...
    金星show阅读 512评论 0 0
  • 1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Red...
    java成功之路阅读 434评论 0 8
  • 文章已经放到github上 ,如果对您有帮助 请给个star[https://github.com/qqxuanl...
    尼尔君阅读 2,296评论 0 22
  • 【本教程目录】 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动r...
    徐猿猿阅读 1,886评论 0 35
  • 苏大侍御访江浦,赋八韵记异 作者:杜甫 庞公不浪出,苏氏今有之。 再闻诵新作,突过黄初诗。 乾坤几反覆,扬马宜同时...
    江南莫之阅读 721评论 6 24