## 一、在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
```