💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 120 Redis的事务操作 redis事务可以一次执行多个命令,事务具有以下特征: * 隔离性:事务中的所有命令都会序列化、按顺序地执行,不会被其他命令打扰 * 原子性:事务中的命令要么全部被执行,要么全部都不执行 * 开启一个事务 ```text 语法: multi ``` 以后执行的所有命令。都在这个事务中执行的。 * **执行事务** ```text 语法: exec ``` 会将在multi和exec中的操作一并提交 * **取消事务** ```text 语法: discard ``` 会将multi后的所有命令取消 * **监视一个或者多个key** ```text 语法: watch key[key...] 示例: # 如果监听的可以发生改变,事务则不会执行,被取消掉 127.0.0.1:6379> watch username OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> set username angle QUEUED 重新打开一个cmd 127.0.0.1:6379> set username miku OK 127.0.0.1:6379> exec 127.0.0.1:6379> get username miku ------------------------------------------------- # 如果监听的key没有发生改变,则事务会正常执行 127.0.0.1:6379> watch name OK 127.0.0.1:6379> multi OK 127.0.0.1:6379> set name angle QUEUED 127.0.0.1:6379> exec OK 127.0.0.1:6379> get name angle ``` 监听一个\(或多个\)key,如果在事务执行之前这个\(或这些\)key被其他命令所改动,那么事务将被打断 * **取消所有可以的监视** ```text 语法: unwatch ```