redis学习笔记
参考文档
链接:https://pan.baidu.com/s/1sMUUYR3VGZcqPmJQNWeYDA
密码:hf2n
进阶:
事务:
事务的原理是先将属于一个事务的命令发送给redis,然后redis依次执行这些命令。
transaction 事务 命令:
redis> multi
ok
redis> sadd user:1:fllowing 2
queued
redis> sadd user:2:follwers 1
queud
redis> exec
1) (integer) 1
2) (integer) 1
上面演示了事务的使用方式,首先使用multi命令告诉redis下面的命令属于同一个事务,你先不要执行,而是把他们暂时存起来。当把所有命令都发送完成后,使用exec命令告诉redis按照发送顺序依次执行。redis保证一个事务中的所有命令要么都执行,要么都不执行。
错误处理:
1,语法错误
指令不存在或者参数的个数不对。向事务中添加3条命令,两条错误,正确的命令可以成功加入事务队列,只要有一个命令有语法错误,执行exec命令后redis就会返回错误,连正确的命令也不会执行。
2,运行错误
运行错误指在命令执行时出现的错误,比如散列类型的命令操作集合类型的键,这种错误在实际执行前是无法发现的,所以在事务里这样的命令是会被redis接受并执行的。如果事务里的一条命令出现了运行错误,其他命令会继续执行(包括出错命令之后的命令)。
watch 命令:
该命令的作用是在事务执行前,先把变量监控起来,在事务执行的时候,如果变量发生变化,则事务不在执行。例如:
redis> set key 1
redsi> watch key
redis> set key 2
redis> multi
redis> set key 3
redsi> exec
redis> get key
// 会输出 2
原因是:一开始设置key=1,然后监控key,然后修改key=2,然后设置事务,事务中修改key=3