## 開啟事務
## multi
```
decrby 鍵 值
//增加多少 這是String字符串里的命令
```
```
incrby 鍵 值
//減少多少 這是String字符串里的命令
```
## 執行事務
```
exec
```
# 真正使用和真正意義上的redis事務
## 語法
```
watch 鍵1 //監控第一個值
watch 鍵2 //監控第二個值
multi //開啟事務
decrby 鍵1 100 //鍵1減去100
incrby 鍵2 100 //鍵2加上100
假如第一個值在另外一個地方發生變化或者第二個值在另外地方發生變化,那么就終止事務達到回滾
```
## watch監控鍵使用語法:
(終止事務用)
```
watch 鍵 //監控鍵
multi
```
如果監控的這個鍵的值,從外部修改或者另外的cil命令窗口開始那么這個事務會停止
```
127.0.0.1:6379> set liu 10000
OK
127.0.0.1:6379> set wang 5000
OK
127.0.0.1:6379> watch liu
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set liu incrby 2000
QUEUED
127.0.0.1:6379> exec
(nil)
//這個nil就是終止了事務
127.0.0.1:6379> get liu
"5000"
127.0.0.1:6379>
```


以上圖片代碼示例:
```
127.0.0.1:6379> watch liu
OK
127.0.0.1:6379> watch wang
OK
127.0.0.1:6379> DECRBY liu 100
(integer) 4900
127.0.0.1:6379> multi
OK
127.0.0.1:6379> DECRBY liu 100
QUEUED
127.0.0.1:6379> incrby wang 100
QUEUED
127.0.0.1:6379> exec
(nil) //nil就是失敗的意思
```
# 事務中進行的演示:
事務進行中::

另外一個窗口改變了第一個值

## 所以導致了事務失敗,第二個值沒有執行, 這就是事務的意義
- 章節導航
- String命令操作
- string字符類型應用場景
- set get
- incr 自增 decr 自減
- substr字符串截取
- expire 過期時間
- 列出所有的鍵
- del刪除鍵值
- 獲取類型
- rename改鍵名
- 查看存儲鍵與刪除所有鍵
- Redis 16個數據庫操作
- 隨機獲取一個鍵
- list(列表)命令操作應用場景
- set(無序集合)命令操作(SADD無序集合 )
- sort set(有序集合) 排序集合(基數數字排序 )
- hash哈希排序類型使用
- redis訂閱功能(推送功能)
- redis事務功能
- redis設置密碼
- redis持久化aof與rdb及備份恢復的使用
- php操作redis string
- php操作redis set sort set hash list
- thinkphp5使用redis
- thinkphp5.0配置redis中 composer使用說明翻譯文件
- reids過期時間設置
- Redis 序列化 排序 遷移數據庫操作
- 主機從機設置
- 公網訪問方法