[轉]Redis集羣的配置

一: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

=========================

相關文章
相關標籤/搜索