在安装完redis服务后,需要安装连接驱动,添加php redis的扩展程序,并修改php的配置文件。
- 环境
192.168.2.112 lap
192.168.2.118 mysql主/redis主
192.168.2.119 redis从
- 112服的连接驱动安装
wget https://github.com/phpredis/phpredis/archive/3.1.2.tar.gz
tar -zxvf 3.1.2.tar.gz
cd phpredis-3.1.2/
/usr/local/php5/bin/phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --enable-redis
#./configure --with-php-config=/usr/bin/php-config --enable-redis yum安装的。
make
make install
在make install命令执行后会显示路径,路径下存放着redis.so
[root@node1 phpredis-3.1.2]# make install
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/
[root@node1 phpredis-3.1.2]#
修改配置文件php.ini,添加(注意扩展的路径)
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
extension = redis.so
在发布目录下编辑phptest.php文件
<?php
phpinfo();
?>
浏览器访问192.168.2.112/phptest.php即可查看redis扩展成功实现
- 测试lamp与redis的整合
1)在之前已经部署好了discuz,进入发布目录设置全局配置文件/usr/local/apache2/htdocs/config/config_global.php设置
$_config['memory']['prefix'] = 'LNIMDI_';
$_config['memory']['redis']['server'] = '192.168.2.118';
$_config['memory']['redis']['port'] = 6379;
2)访问discuz页面后,再进入118的redis,可以看到redis存在LNIMDI开头的key,则说明数据成功缓存到redis
127.0.0.1:6379> keys *
1) "LNIMDI_cronpublish"
2) "LNIMDI_forum_index_page_1"
3) "LNIMDI_setting"
4) "LNIMDI_onlinerecord"
5) "LNIMDI_cronnextrun"
6) "LNIMDI_common_member_field_home_1"
………
3)在discuz注册个账号lee2并登陆,然后进入mysql后可以看到账号lee2的信息
4)在mysql数据库手动删除账号lee2的资料,再查lee2时没有数据
mysql> delete from ultrax.pre_common_member where username = 'lee2';
Query OK, 1 row affected (0.00 sec)
mysql> select * from ultrax.pre_common_member where username = 'lee2';
Empty set (0.00 sec)
5)此时再进入discuz用lee2登陆,依然可以登录,说明此时数据是直接去读取redis
而实际生产环境中,用户数据删除了就是删除了,不应该让删除的用户因为redis的缓存而继续可以登录系统,此时就需要依靠中间件来去同步redis和db的数据情况
备注:
1) 如果在/usr/local/php5/etc/下没有php.ini文件,则可以直接在php源码包下面找到然后复制为/usr/local/php5/etc/php.ini。老版本php的配置文件名为php.ini-dist,新版本后会有两个文件分别为php.ini-production和php.ini-development,前者有较高的安全性适合于生产环境,后者适合开发测试。然后把/etc/php.ini删除或者备份为php.ini.bak,并重新做个软链接。
ln -s /usr/local/php5/etc/php.ini /etc/php.ini