在安装完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扩展成功实现
redis与lamp整合_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的信息
redis与lamp整合_Redis_02

redis与lamp整合_Redis_03

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