1. 程式人生 > >Redis原理實戰安裝配置及與LAMP整合

Redis原理實戰安裝配置及與LAMP整合

Redis介紹

在大使用者量場景下,WEB系統如果每次都從資料庫裡獲取資料庫,將嚴重影響使用者體驗,為了提高使用者體驗,我們可以將使用者資料儲存在快取中。

常用的快取工具有:memcache和redis。

Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫。

和memcached快取類似,Redis支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(有序集合)和hash(雜湊型別)。

Redis是一種高階key-value資料庫,它跟memcached型別,不過Redis的資料可持久化。

名稱

資料庫型別

資料儲存選項

操作型別

備註

Redis

記憶體儲存,Nosql資料庫

支援字串、列表、集合、散列表、有序集合

增、刪、修改、更新

支援分散式叢集、主從同步及高可用、單執行緒

Memcached

記憶體快取資料庫,鍵值對

鍵值之間的對映

增、刪、修改、更新

支援多執行緒

MySQL

典型關係資料庫,RDBMS

資料庫由多表主成,每張表包含多行

增、刪、修改、更新

支援ACID性質

PostgreSQL

典型關係資料庫,RDBMS

資料庫由多表主成,每張表包含多行

增、刪、修改、更新

支援ACID性質

MongoDB

硬碟儲存,Nosql資料庫

資料庫包含多個表

增、刪、修改、更新

主從複製,分片,副本集、空間索引

LAMP+Redis工作機制

使用者通過瀏覽器訪問LAMP網站,並以使用者名稱和密碼登入到網站,預設Redis快取中沒有改使用者名稱和密碼對應列表,PHP程式會讀取MYSQL資料庫中的使用者名稱和密碼,然後將使用者名稱和密碼快取至Redis中,下次使用者通過瀏覽器再次使用同樣的使用者名稱和密碼登入網站,PHP無需從資料庫中讀取該使用者和密碼資訊,而是直接優先從Redis快取中讀取並返回,從而減輕MYSQL資料庫壓力。

Redis除了可以快取使用者名稱、密碼,還可以快取PHP論壇各種資料,例如帖子、使用者狀態等。

LAMP+Redis架構流程圖

要實現將LAMP PHP網站相關資料存入Redis,需要一臺Redis伺服器、PHP-redis連線驅動、PHP程式碼連線修改等。

LAMP+Redis操作案例

LAMP PHP連線Redis,首先要安裝Redis伺服器,安裝連線驅動,然後修改PHP網站配置檔案,具體步驟如下:

1、LAMP + Redis環境配置:

LAMP伺服器(PHP-Redis驅動):192.168.241.134
Redis主庫:192.168.241.133
Redis從庫:192.168.241.135
2、LAMP安裝配置見:http://blog.csdn.net/scott_bing/article/details/78337979

3、部署Redis服務

wget -c -P /src  http://download.redis.io/releases/redis-2.8.13.tar.gz
tar zxvf redis-2.8.13.tar.gz -C /src/
cd /src/redis-2.8.13
make PREFIX=/usr/local/redis install
cp /src/redis-2.8.13/redis.conf /usr/local/redis/
將/usr/local/redis/bin目錄加入至環境變數配置檔案/etc/profile末尾,執行source /etc/profile讓環境變數生效。
export PATH=/usr/local/redis/bin:$PATH
啟動及停止Redis服務命令:
nohup /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf &
/usr/local/redis/bin/redis-cli -p 6379 shutdown
本地登入測試:
/usr/local/redis/bin/redis-cli
注:Redis預設有16個庫,從0-15,預設使用0庫,可以通過select 切換:select 1 進入第1個庫,select 15 進入第15個庫,select 16 庫不存在。

Redis儲存沒有表,以key-value方式儲存。

4、安裝PHP-Redis連線驅動

要確保PHP能夠連線Redis快取伺服器,需新增PHP Redis擴充套件程式,也即是新增PHP的ext擴充套件模組,新增方法如下:

wget -c -P /src https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz
tar zxvf 3.1.2.tar.gz -C /src
cd  /src/phpredis-3.1.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-redis
make
make install
-------------------------------------------------------------------------------------------------------------------------------
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
make install後出現以上提示,表示已經把redis.so模組新增進來
問題:[[email protected] phpredis-3.1.2]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解決方法:
yum install m4 autoconf -y
5、修改php的配置檔案/usr/local/php/etc/php.ini,新增redis.so模組,如下:

注:怎麼檢視php.ini檔案的路徑,可以在網站釋出目錄中新建一個測試頁面info.php,新增以下程式碼:<?php phpinfo()?>,然後訪問測試頁面檢視php.ini配置檔案路徑,如果路徑中沒有php.ini配置檔案,可以從php原始碼中拷貝過來。

cp /src/php-5.6.30/php.ini-production /usr/local/php/etc/php.ini

extension_dir ="/usr/local/php/lib/php/extensions/no-debug-zts-20131226"

extension=redis.so
6、重啟apache服務,寫入phpinfo測試頁面,訪問檢視存在Redis模組,如下圖:


LAMP+Redis快取測試

1、測試Redis是否成功快取網站資訊

登入WEB伺服器,修改Discuz PHP網站釋出/usr/local/apache/htdocs目錄全域性配置檔案config_global.php,查詢CONFIG MEMORY段,將redis server後改為Redis主伺服器的IP 192.168.241.133即可,如下圖:


通過瀏覽器訪問Apache PHP論壇網站,同時登入Redis伺服器,執行命令redis-cli進入Redis命令列,執行命令keys *,如下圖所示,存在2ewbrw_開頭的key,則證明Redis成功快取LAMP+Discuz網站資訊資料。


2、測試Redis快取是否生效

訪問LAMP+Discuz網站,建立論壇測試使用者test,密碼123456,此時使用者資料第一次註冊,使用者名稱和密碼會寫入到MySQL資料庫表中,同時也會將該資料寫入至Redis快取中,如圖所示:




將test使用者資訊從MySQL Discuz庫pre_common_member中刪除,通過test使用者依然可以正常登入WEB網站,則證明此資料讀取的是Redis快取伺服器。


此時依然可以用test使用者登入WBE網站


相關推薦

Redis原理實戰安裝配置LAMP整合

Redis介紹 在大使用者量場景下,WEB系統如果每次都從資料庫裡獲取資料庫,將嚴重影響使用者體驗,為了提高使用者體驗,我們可以將使用者資料儲存在快取中。 常用的快取工具有:memcache和redis。 Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶

kafka安裝配置logstash整合

1、kafka安裝 下載   wget http://mirror.bit.edu.cn/apache/kafka/0.8.2.2/kafka_2.9.1-0.8.2.2.tgz 配置zookeeper     vim bin/zookeeper-server-start.

grafana安裝使用zabbix整合

開發十年,就只剩下這套架構體系了! >>>   

windows下的nginx安裝配置tomcat關聯配置記錄

   1. 官方中文說明:http://wiki.nginx.org/NginxChs  或者http://nginx.org/ 下載:當前穩定版: Nginx 1.0.5 | Nginx/windows 1.0.5 (更新記錄) (2011年7月19日) 我們下

pythonanaconda安裝配置使用選擇

一,python的安裝配置 windows系統安裝python比較簡單,只需要從官網https://www.python.org/downloads/下載相應的python版本,然後一鍵安裝即可。 當需要用到第三方庫的時候,再用pip安裝:pip install package. 二,A

Day01---計算機語言發展史環境安裝配置Java語言中的識別符號、關鍵字

【每日一句:不積跬步無以至千里,不積小流無以成江海】 【1】Java語言的特性: 1.跨平臺:藉助虛擬機器,程式不經修改即可在不同硬體或者軟體平臺上執行 2.以物件為基本單位,使得程式開發變得簡單易用,拓展更方便 3.Java是一門強型別的語言,摒棄了指標,擁有

MongoDB教程之MongoDB和Robomongo的安裝配置簡單實戰

一、MongoDB 1、下載地址 2、安裝 解壓安裝包,選擇自定義“Custom”修改安裝路徑為D:\Program Files\MongoDB,然後點選Next直到安裝結束。 3、配置 3-1、建立資料庫檔案存放位置 新建MongoDB的子資料

Sphinx中文分詞詳細安裝配置API呼叫實戰手冊

這幾天專案中需要重新做一個關於商品的全文搜尋功能,於是想到了用Sphinx,因為需要中文分詞,所以選擇了Sphinx for chinese,當然你也可以選擇coreseek,建議這兩個中選擇一個,暫時不要選擇原版Sphinx(對中文的支援不是很好).又因為伺服器所用MySQL在當時編譯時並沒有編譯Sphi

redis學習筆記01 — 基本介紹、安裝配置常用命令

redis——NoSQL的一種 為了解決高併發、高可用、高擴充套件、大資料儲存等一系列問題而產生的資料庫解決方案,就是NoSQL NoSQL,非關係型資料庫,全名:Not Only Sql,它不能代替關係型資料庫,只能作為關係型資料庫的一個良好補充。 redis 簡介 是使用

Redis安裝過程SSM結合使用

Redis安裝過程 下載安裝包,解壓,Mac系統將資料夾放在/usr/local資料夾下 開啟終端,先安裝伺服器端server 終端$ cd /usr/local/redis/ 去檔案下進入redis.config檔案 找到requirepass刪除

Python之路58-Django安裝配置一些基礎知識點

python目錄一、安裝Django二、創建工程三、創建app四、靜態文件五、模板路徑六、設置settings七、定義路由八、定義視圖九、渲染模板十、運行Django是一款Python的web框架一、安裝Djangopip3 install django安裝完成後C:\Python35\Script下面會生成

JSPWiki安裝配置FCKEditor的集成

後來 manual tor edi lin fck base jsp .org 版本:JSPWiki-2.8.2 FCKeditor_2.6.3 安裝方法我參照:http://doc.jspwiki.org/2.4/wiki/Ins

MongoDB3.4安裝配置以及Robomongo1.1的連接——解決Authentication Failed導致的不能連接問題

class .exe oca with www 解決方法 comm ror 命令 本文環境:win10(64)+MongoDB(3.4.5)+Robomongo(1.1) 目錄: MongoDB的安裝 MongoDB的配置 Robomongo的安裝以及與MongoDB的連

第一章 redis 集群安裝配置

-c res 創建集群 con 保護 config uil table eat *** 集群對應的主從節點如果同時down,則整個redis集群無法工作 *** 部分是對網上資源的整理,部分是安裝過程中存在問題的總結 準備、環境 centos1:192.168.215.15

NFS服務器原理安裝配置詳解附案例演練

隨機選擇 span 通訊 操作系統 不同 網絡 定義 重新啟動 exportfs NFS服務器原理和安裝配置詳解附案例演練 1、什麽是NFS服務器   NFS就是Network File System的縮寫,它最大的功能就是可以通過網絡,讓不同的機器、不同的操作系統可以共享

自動化運維工具-pdsh工具安裝配置簡單使用講解

stat 運維 條件 ati etc amp gen nodes ogl 1、先決條件: 安裝pssh工具的主機針對遠程主機需要配置免秘鑰認證: ssh-keygen -t rsa ssh-copy-id [remotehost] 2、下載pssh工具安裝介質: https

自動化運維工具-mussh工具安裝配置簡單使用講解

cal 解壓 -i remote --help 1.0 host port href 1、先決條件: 安裝pssh工具的主機針對遠程主機需要配置免秘鑰認證: ssh-keygen -t rsa ssh-copy-id [remotehost] 2、下載mussh工具安裝介質

kafka入門:簡介、使用場景、設計原理、主要配置集群搭建(轉)

request 上傳 結構 數據 send gist segments ring 希望 問題導讀: 1.zookeeper在kafka的作用是什麽? 2.kafka中幾乎不允許對消息進行“隨機讀寫”的原因是什麽? 3.kafka集群consumer和producer狀態信息

Zabbix(一):server,agent端 安裝配置主機,監控項,觸發器,動作,媒介配置步驟

zabbixZabbix(一):server端配置、agent端配置及創建主機組、主機、Application、Item、Trigger步驟詳解zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供柔軟的通知

Jenkins的安裝配置使用

需要 java 如果 ima 調用 too 結果 png testcase 一、以Jenkins在tomcat容器裏運行的方式,jenkins的安裝及安裝時所涉及的JDK和tomcat的配置 1、首先下載tomcat, 2、下載Jenkins.war包,將war包放在tom