CentOS配置php-redis扩展

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。它和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。 在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。目前,Vmware在资助着redis项目的开发和维护。

LNMP相关软件安装目录

1
2
3
4
5
6
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/

安装及配置redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wget http://download.redis.io/releases/redis-4.0.6.tar.gz #下载安装包
tar -zxvf redis-4.0.6.tar.gz #解压安装包
yum install gcc #安装依赖
cd redis-4.0.6 #cd到解压路径
make MALLOC=libc #编译安装
cd src && make install
#当出现以下字段时安装成功:
CC Makefile.dep

Hint: It's a good idea to run 'make test' ;)

INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install

redis默认没有后台启动功能,直接启动:

1
2
cd  redis-4.0.6/src
./redis-server

配置后台启动,修改redis.conf文件:

1
2
3
4
#将daemonize no
#修改为daemonize yes
#指定redis.conf文件启动
./redis-server /usr/local/redis-4.0.6/redis.conf

设置redis开机自启动:

1
2
3
4
5
6
cd /etc
mkdir redis
#将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.con
cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
#将redis的启动脚本复制一份放到/etc/init.d目录下
cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd

设置redis开机自启动,先切换到/etc/init.d目录下,然后执行自启命令:

1
chkconfig redisd on

倘若出现service redis does not support chkconfig字样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#添加redis到自启动服务:
[root@redis01 redis]# chkconfig --add redis
service redis does not support chkconfig
解决方法:(在/etc/init.d/redis添加两行注释)
#!/bin/sh
#添加的两行注释内容如下:
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# 注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10
[root@redis01 redis]# chkconfig --add redis
[root@redis01 redis]# echo $?
0
[root@redis01 redis]# chkconfig --list | grep redis
redis 0:off1:off2:on3:on4:on5:on6:off

在编辑其它类似服务时,也可能出现这种情况,解决方法基本类似。
redis安装完毕。

PHP5.6开启Redis扩展

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
wget https://github.com/phpredis/phpredis/archive/2.2.8.zip 
unzip 2.2.8.zip #解压
cd phpredis-2.2.8/ #进入安装目录
/usr/local/php/bin/phpize #用phpize生成configure配置文件,目录可能不同。
./configure --with-php-config=/usr/local/php/bin/php-config
make #编译
make install #安装
#安装完成之后,出现下面的安装路径
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
#配置php支持
vi /usr/local/php/etc/php.ini
#编辑配置文件,在最后一行添加以下内容
#添加
extension="redis.so" #:wq! #保存退出
#重启nginx
/etc/init.d/nginx restart
#重启php-fpm
/etc/init.d/php-fpm restart
启动redis
/etc/init.d/redisd start #阿里云服务器需要开放6379端口

访问浏览器http://ip/phpinfo.php ,显示出Redis Support/Version字段说明配置成功。