Redis+mysql+NGINX+PHP

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.