一:memcache 和 Redis 對比總結php
[memecache 特色]git
1:速度最快(沒有自測,但網上有詳細的測試用例)github
2:支持水平擴展,能夠任意添加節點web
[redis 特色]redis
1:速度沒有memcache快數據庫
2:支持M/S的主從備份緩存
3:能夠支持多數據庫bash
4:操做指令很豐富服務器
4:支持異步數據持久化(以文件保存)併發
總結:
1:若是是簡單的數據緩存建議使用MEMCACHE。
2:若是要對單一操做的數據量很是的大則使用MEMCACHE
3: 若是想作性能很好的緩存集羣能夠用Redis(M/S讀寫分離,如weibo中的排行榜等)
4: 若是在高併發下又想保存數據則能夠用Redis (如更新熱門文章瀏覽次數,memcachedb也不錯)
二:Redis 的詳細安裝,
將 redis 安裝到 /usr/local/webserver/redis
1:從 http://redis.io/download 上下載安裝包
wget http://redis.googlecode.com/files/redis-2.2.15.tar.gz
tar zxvf redis-2.2.15.tar.gz
cd redis-2.2.15
make
mkdir -p /usr/local/webserver/redis/conf
mkdir -p /usr/local/webserver/redis/run
mkdir -p /usr/local/webserver/redis/db
cp redis.conf /usr/local/webserver/redis/conf/
cd src
# 將 src 目錄下全部可執行文件複製到安裝目錄
cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/
2:修改配置文件中的以下選項
------- vi /usr/local/webserver/redis/conf/redis.conf --------
daemonize yes
pidfile /usr/local/webserver/redis/run/redis.pid
dir /usr/local/webserver/redis/db
--------------------------------------------------------------
3:建立服務腳本
------- vi /usr/local/webserver/redis/start.sh ---------
#!/bin/bash
/usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf
--------------------------------------------------------
------- vi /usr/local/webserver/redis/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis/run/redis.pid`
--------------------------------------------------------
chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh
4:啓動 redis 服務
/usr/local/webserver/redis/start.sh
驗證證服務是否成功:
netstat -nlpt | grep 6379
5:啓動客戶端驗證
/usr/local/webserver/redis/redis-cli
>set key1 val1
>get key1
三:Redis Master/Slave 主從集羣配置
這裏咱們以本機配置 1臺Master + 2臺Slave 爲例子,其中:
Master IP:127.0.0.1 PORT:6379
Slave1 IP:127.0.0.1 PORT:63791
Slave2 IP:127.0.0.1 PORT:63792
1:複製兩個 Slave 目錄,方便管理
cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave1
cp -r /usr/local/webserver/redis /usr/local/webserver/redis-slave2
2:修改 redis-slave1 的配置文件和服務腳本
-- vi /usr/local/webserver/redis-slave1/conf/redis.conf --
port 63791
pidfile /usr/local/webserver/redis-slave1/run/redis.pid
dir /usr/local/webserver/redis-slave1/db
slaveof 127.0.0.1 6379
----------------------------------------------------------
-- vi /usr/local/webserver/redis-slave1/start.sh --
#!/bin/bash
/usr/local/webserver/redis-slave1/redis-server /usr/local/webserver/redis-slave1/conf/redis.conf
---------------------------------------------------
------- vi /usr/local/webserver/redis-slave1/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis-slave1/run/redis.pid`
--------------------------------------------------------
3:修改 redis-slave2 的配置文件和服務腳本
-- vi /usr/local/webserver/redis-slave2/conf/redis.conf --
port 63792
pidfile /usr/local/webserver/redis-slave2/run/redis.pid
dir /usr/local/webserver/redis-slave2/db
slaveof 127.0.0.1 6379
----------------------------------------------------------
-- vi /usr/local/webserver/redis-slave2/start.sh --
#!/bin/bash
/usr/local/webserver/redis-slave2/redis-server /usr/local/webserver/redis-slave2/conf/redis.conf
---------------------------------------------------
------- vi /usr/local/webserver/redis-slave2/stop.sh ---------
#!/bin/bash
kill `cat /usr/local/webserver/redis-slave2/run/redis.pid`
--------------------------------------------------------
4:啓動 M/S 服務
/usr/local/webserver/redis/start.sh
/usr/local/webserver/redis-slave1/start.sh
/usr/local/webserver/redis-slave2/start.sh
驗證服務是否正常: netstat -nlpt | grep redis-server 有3個端口存在證實成功了
0 0.0.0.0:6379
0 0.0.0.0:63791
0 0.0.0.0:63792
5:驗證M/S服務是否生效
/usr/local/webserver/redis/redis-cli [默認鏈接端口:6379 的 Master服務]
>set key1 val1
>quit
/usr/local/webserver/redis/redis-cli -p 63791 [鏈接 Slave1 服務]
>get key1
"val1" (數據成功同步了)
/usr/local/webserver/redis/redis-cli -p 63792 [鏈接 Slave2 服務]
>get key1
"val1" (數據成功同步了)
四:安裝 Redis PHP 擴展
Redis全部的客戶端在 http://redis.io/clients [PHP選項卡] 基於性能選擇安裝 phpredis
在 https://github.com/nicolasff/phpredis/downloads 上下載源代碼包到本地而後上傳到服務器.
tar zxvf nicolasff-phpredis-2.1.3-167-ga5e53f1.tar.gz
cd nicolasff-phpredis-a5e53f1
phpize
./configure
make && make install
查看輸出信息會告訴你 redis.so 的那個目錄下,把它複製到PHP的擴展目錄下
個人系統上是 /usr/lib/php5/extensions/
用 php --ini 找到 php.ini 的位置,加入如下行後重啓WEB服務器
=========================
extension=redis.so
=========================