[TOC]
## 事務處理
形如 MySQL 中的事務處理
```
redis>MULTI #開始事務
redis>命令1
redis>命令2
...
redis>命令N
redis>EXEC #執行命令
```
>[danger]Redis事務并沒有回滾功能 需保證鍵名的規范使用
- WITCH 監控鍵
監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那么事務將被打斷。
## key 的時間相關
- 過期時間
```
EXPIRE key seconds
```
- 查看多久過期
```
TTL key
```
如果鍵不存在 返回 -2 未設置過期時間 則返回 -1
- 取消過期設置
```
PERSIST key
```
## 排序
可以針對列表、集合和有序集合排序
```
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
```
>[info] 集合類型經常被用于存儲對象的ID,很多情況下都是整數。Redis對此情況作了特殊優化,元素是有序的。
>[danger] SORT優化:
>1 盡可能減少待排序鍵中元素的數量
>2 使用LIMIT 參數只獲取需要的數據量
>3 如果要排序的數據量較大,盡可能使用 STORE 參數將結果緩存
## 消息通知
- 列表的阻塞式(blocking)彈出
```
BRPOP key [key ...] timeout
```