標籤:Redis簡介 Redis+PHP+mysql環境搭建 mysql的觸發更新到Redis gearman
一 Redis1 Redis 簡介
Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。
Redis 與其他 key - value 緩衝產品有以下三個特點:
Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
Redis不僅僅支援簡單的key-value類型的資料,同時還提供list,set,zset,hash等資料結構的儲存。
Redis支援資料的備份,即master-slave模式的資料備份。
2 Redis 優勢
效能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
豐富的資料類型 – Redis支援二進位案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料類型操作。
原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支援事務,即原子性,通過MULTI和EXEC指令包起來。
豐富的特性 – Redis還支援 publish/subscribe, 通知, key 到期等等特性。
3 Redis與其他key-value儲存比較
Redis有著更為複雜的資料結構並且提供對他們的原子性操作,這是一個不同於其他資料庫的進化路徑。Redis的資料類型都是基於基本資料結構的同時對程式員透明,無需進行額外的抽象。
Redis運行在記憶體中但是可以持久化到磁碟,所以在對不同資料集進行高速讀寫時需要權衡記憶體,因為資料量不能大於硬體記憶體。在記憶體資料庫方面的另一個優點是,相比在磁碟上相同的複雜的資料結構,在記憶體中操作起來非常簡單,這樣Redis可以做很多內部複雜性很強的事情。同時,在磁碟格式方面他們是緊湊的以追加的方式產生的,因為他們並不需要進行隨機訪問。
二 實驗環境:
軟體:
連結:https://pan.baidu.com/s/1VJ91A6pCLqDfbzsL2OPyXA
密碼:bu2x
1 軟體的安裝1 安裝php並修改時區
查看其是否添加了mysql模組
2 安裝和配置NGINX模組
添加PHP首頁:
查看:
3 PHP上載入redis相關的模組:
4 server2上安裝redis
2 配置1 server3 端配置連結redis和mysql
2 server 1 端mysql 端配置:
3 測試:
後端資料庫修改資料:
前端查看:
沒有變化,由於沒有觸發更新機制,因此沒有反應:
3 配置觸發更新:
gearman 架構圖:
Gearman 是一個支援分布式的任務分發架構:
Gearman Job Server:Gearman 核心程式,需要編譯安裝並以守護進程形式運行在後台。
Gearman Client:可以理解為任務的要求者。
Gearman Worker:任務的真正執行者,一般需要自己編寫具體邏輯並通過守護進程方式
運行,Gearman Worker 接收到Gearman Client 傳遞的任務內容後,會按順序處理。
大致流程:
下面要編寫的mysql 觸發器,就相當於Gearman 的用戶端。修改表,插入表就相當於直接
下發任務。然後通過lib_mysqludf_json UDF 庫函數將關係資料對應為JSON 格式,然後
在通過gearman-mysql-udf 外掛程式將任務加入到Gearman 的任務隊列中,最後通過
redis_worker.php,也就是Gearman 的worker 端來完成redis 資料庫的更新。
一個Gearman請求的處理過程涉及三個角色:Client -> Job -> Worker。
Client:請求的發起者,可以是 C,PHP,Perl,MySQL UDF 等等。
Job:請求的調度者,用來負責協調把 Client 發出的請求轉寄給合適的 Work。
Worker:請求的處理者,可以是 C,PHP,Perl 等等。
因為 Client,Worker 並不限制用一樣的語言,所以有利於多語言多系統之間的整合。
甚至我們通過增加更多的 Worker,可以很方便的實現應用程式的分布式負載平衡架構。
1 gearmand 的安裝:
負責接收前端gearman client 的資料,以守護進行的形式存在
2 gearman 安裝,用於php的外掛程式,
查看模組是否安裝成功
3 配置PHP連結Redis:
通過指定redis伺服器IP地址和連接埠的方式進行指定
打入後台
將設定檔發往mysql資料所在的server1
4 安裝mysql相關配置包1 lib_mysqludf_json UDF庫函數將關係資料對應為JSON 格式。通常,資料庫中的資料映
射為JSON 格式,是通過程式來轉換的。
2 安裝gearman-mysql-udf:
這個外掛程式是用來管理調用Gearman 的分布式的隊列。
5 修改為建立觸發器模板
6 註冊UDF函數:
7 建立觸發器並查看其狀態
8 服務端進行資料插入測試
用戶端查看是否插入成功
Redis+mysql+NGINX+PHP