一 . 兩種模式簡介
- 發布消息通常有兩種模式:隊列模式(queuing)和發布訂閱模式(qublish-subscribe)。隊列模式中,consumers可以同時從服務端讀取消息,每個消息紙杯其中一個consumer讀到
- 發布-訂閱模式中消息被廣播到所有的consumer中,topic中的消息將被分發到組中的一個成員中,同一組中的consumer可以在不同的程序中,也可以在不同的機器上。
1.1.1 生產消費模式(隊列模式),(案例生產包子,消費者消費先消費最新生產的)

1 127.0.0.1:6379> lpush bao bao1 2 (integer) 1 3 127.0.0.1:6379> lpush bao bao2 4 (integer) 2 5 127.0.0.1:6379> lpush bao bao3 6 (integer) 3 7 127.0.0.1:6379> lrange bao 0 10 8 1) "bao3" 9 2) "bao2" 10 3) "bao1" 11 127.0.0.1:6379> lpush bao bao4 12 (integer) 4 13 127.0.0.1:6379> lpush bao bao6 14 (integer) 5 15 127.0.0.1:6379> rpop bao 16 "bao1" 17 127.0.0.1:6379> rpop bao 18 "bao2" 19 127.0.0.1:6379> rpop bao 20 "bao3" 21 127.0.0.1:6379> lrange bao 0 10 22 1) "bao6" 23 2) "bao4" 24 127.0.0.1:6379> lpush bao bao7 25 (integer) 3 26 127.0.0.1:6379> lpush bao bao8 27 (integer) 4
1.1.2 發布訂閱模式
Redis發布訂閱(Pub/Sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接受消息
Redis 客戶端可以訂閱任意數量的頻道
subscribe dd1 | 訂閱給定的一個或者多個頻道的信息 |
publish dd1 "haha af fadg gdsg" | 將消息發送到指定的頻道 |
pubsub numsub dd1 |
打印頻道訂閱者數量 |
pubsub channels | 顯示訂閱頻道 |
punsubscribe | 退訂多個頻道 |
unsubscribe | 退訂頻道 |
1.1.3 Redis 事務
事務是一個單獨的隔離操作:事務中的所有命令都會序列化,按照序列的執行。事務在執行過程中,不會被其他的客戶端發送來的命令請求所打斷
原子性:事務中的命令要么全部執行,要么全部不執行
執行過程
- 開始事務
- 命令入隊
- 執行事務
siscare | 取消事務,放棄執行事務模塊內的所有命令 |
exec | 執行所有事務塊內的命令 |
multi | 標記一個事務塊的開始 |
unwatch | 取消watch命令對所有key的監視 |
watch key key | 監視一個或多個key,如果事務執行之前這個(或這些)key被其他命令所改動,那么事務將被打斷 |