什么是redis?
Redis是一個開放源代碼(BSD許可)的內存數據結構存儲,用作數據庫、緩存和消息代理。它支持字符串、哈希、列表、集合、帶范圍查詢的排序集合、位圖、超日志、帶半徑查詢和流的地理空間索引等數據結構。Redis具有內置的復制、Lua腳本、LRU收回、事務和不同級別的磁盤上持久性,並通過Redis Sentinel和Redis群集的自動分區提供高可用性。說白了redis就是一個數據存儲字典當我們需要用到某些字段或者對象就去redis這個字典中去尋找。
為什么要使用redis?
當有這樣一個需求,我們的項目是分布式的,每個實例都需要一些字段吧,肯定有這么一種情況,有一個字段是所有實例共同維護的,那么問題來了,我們怎么實現?這個時候你就會想到redis。
redis支持存儲什么類型?
string,map,list set,zset,具體怎么用,請看官方API:https://redis.io/commands
本片文章的重點是redis的發布訂閱,下面請看
- 第一步:安裝部署什么的就不用說了,筆主是參考菜鳥學院:http://www.runoob.com/redis/redis-tutorial.html
- 第二步:使用 redis-server 命令啟動服務端
- 第三步:使用redis-cli命令啟動客戶端,這里我們啟動三個客戶端(192.168.160.128[0],192.168.160.128[1],192.168.160.128[2])
- 我們使用client list 命令來查看我們的客戶端啟動的情況
從上圖我們可以清楚的看到我們啟動了三個客戶端,端口分別為:51598,51600,51602
- 我們使用netstat -an來查看本地網絡的連接情況:
從上圖我們可以清楚的看到redis服務端127.0.0.1:6379分別與客戶端127.0.0.1:51598,127.0.0.1:51600,127.0.0.1:51602建立了鏈接
- 第四步:我們使用SUBSCRIBER命令訂閱一個頻道,這里客戶端192.168.160.128[0],192.168.160.128[1]都訂閱了頻道名稱為“redisChatTest1”的頻道。
- 第五步:我們使用客戶端192.168.160.128[2]發布頻道信息,可以看到客戶端192.168.160.128[0],192.168.160.128[1]成功接收到它發來的頻道信息。