## 一、在CentOS下編譯安裝Redis擴展
###**1)構建 Redis**
redis 目前沒有官方 RPM 安裝包,我們需要從源代碼編譯,而為了要編譯就需要安裝 Make 和 GCC。
```
yum install gcc make
```
從官網下載 tar 壓縮包。
```
curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
```
解壓縮。
```
tar zxvf redis-3.0.4.tar.gz
```
進入解壓后的目錄。
```
cd redis-3.0.4
```
使用Make 編譯源文件。
```
make
```
###**2)安裝**
進入源文件的目錄
```
cd src
```
復制 Redis 的服務器和客戶端到 /usr/local/bin。
```
cp redis-server redis-cli /usr/local/bin
```
最好也把 sentinel,benchmark 和 check 復制過去。
```
cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
```
創建redis 配置文件夾。
```
mkdir /etc/redis
```
在/var/lib/redis 下創建有效的保存數據的目錄
```
mkdir -p /var/lib/redis/6379
```
###**3)配置參數**
redis.conf 是 redis 的配置文件,然而你會看到這個文件的名字是 6379.conf ,而這個數字就是 redis 監聽的網絡端口。如果你想要運行超過一個的 redis 實例,推薦用這樣的名字。
復制第一步解壓目錄下的 `redis.conf` 到 `/etc/redis/6379.conf`,現在編輯這個文件并且配置參數。
```
vim /etc/redis/6379.conf
```
####***daemonize***
設置 daemonize 為在前臺還是后臺運行,如果擔心 redis 會突然掛掉,需要它運行在前臺, 則設置 daemonize 為 no;如需要它在后臺運行,設置為 yes。
```
daemonize yes
```
####***pidfile***
設置 pidfile 為 /var/run/redis_6379.pid。
```
pidfile /var/run/redis_6379.pid
```
####***port***
如果不準備用默認端口,可以修改。
```
port 6379
```
####***loglevel***
設置日志級別。
```
loglevel notice
```
####***logfile***
修改日志文件路徑。
```
logfile /var/log/redis_6379.log
```
####***dir***
設置目錄為 /var/lib/redis/6379
```
dir /var/lib/redis/6379
```
###**3)使用**
運行`6379.conf`文件
```
cd /etc/redis/
redis-server 6379.conf
// 可以直接打:
redis-server /etc/redis/6379.conf
```
進行檢測
```php
// 檢測后臺進程是否存在
ps -ef |grep redis
// 檢測6379端口是否在監聽
netstat -lntp | grep 6379
// 使用`redis-cli`客戶端檢測連接是否正常,
cd /usr/local/bin/
[root@localhost bin]# redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"
127.0.0.1:6379> exit
```
停止
```
// 使用客戶端
redis-cli shutdown
// 因為Redis可以妥善處理SIGTERM信號,所以直接kill -9也是可以的
kill -9 PID
```
## 二、在CentOS下yum安裝php-redis擴展
PHP共有2種Memcache擴展,一個叫Memcache(2002年發布),另一個叫Memcached(2008年發布)
Memcached比較新,它依賴于limemcached庫才能運行,不過它能完成基于Memcache服務的幾乎所有功能,比如:Memcached::getResultCode ,它能返回上一次操作Memcache的結果,而Memcache則沒有這個功能
Memcache(沒有d)不依賴任何庫就能運行,安裝相對簡單,同時也能完成Memcache服務的大部分主要功能。
安裝前確定自己要安裝哪一種
```
// 安裝 php-redis 擴展
[root@localhost ~]# yum install php-redis
// 安裝完成后重啟 Apache
[root@localhost ~]# systemctl restart httpd.service
```
## 三、在CentOS下yum安裝Redis擴展
```php
// 1. 查找 Memcached
yum search memcached
// 2. 安裝 Memcached
yum -y install memcached
// 3. 驗證安裝
memcached -h
// 4. 將 memcache 加入啟動列表(這一條自己沒有試過)
chkconfig --level 2345 memcached on
// 5. 配置Memcache
vim /etc/sysconfig/memcached
文件中內容如下
PORT=”11211″ 端口
USER=”root” 使用的用戶名
MAXCONN=”1024″ 同時最大連接數
CACHESIZE=”64″ 使用的內存大小
OPTIONS=”" 附加參數
// 6. 查看memcache狀態
memcached-tool [Memcache Server IP]:[Memcache Server Port] stats
如:memcached-tool 127.0.0.1:11211 stats
// 7. 安裝完成后,啟動 memcached,并設置一些參數
// -d 以守護進程模式運行(退出終端窗口之后使程序還在運行),-l 指定IP地址127.0.0.1 ,-p 指定端口號11211,-m 為memcached分配多少內存(單位:M),-u 指定使用哪個用戶啟動memcached
/usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root
// 8. 查看memcached是否在運行
ps -ef | grep memcached
```