环境说明 以下为我的ip分配
IP地址 环境 192.168.152.129 redis 192.168.152.130 Web(PHP) 192.168.152.131 mysql 关闭防火墙 关闭getenforce
systemctl stop firewalld
同步时间
yum -y install ntp ntpdate #下载ntp服务 ntpdate cn.pool.ntp.org hwclock --systohc
场景实战搭建
1、安装PHP(WEB服务器安装,不要安装错地方了)
yum install php php-fpm php-cli php-common php-gd php-mbstring php-mysql php-pdo php-devel php-xmlrpc php-xml php-bcmath php-dba php-enchant
2、安装PHP的Redis扩展(WEB服务器安装,不要安装错地方了)
wget http://pecl.php.net/get/redis-2.2.7.tgz #下载包 tar -zxvf redis-2.2.7.tgz #解压包 cd redis-2.2.7/ #切换到redis-2.2.7的目录 phpize ./configure make install
编译完成之后可以看到安装目录如下,进入后可以看到编译的模块redis.so
vim修改/etc/php.ini,添加redis的扩展
extension = redis.ao
重启web服务器的httpd服务
systemctl restart httpd
在httpd的发布目录下编辑如下PHP页面,然后访问
创建index.php,在index.php中输入如下代码
<?php phpinfo(); ?>
最后查看PHPinfo,显示如下,代表安装成功
安装redis(在redis中安装)
wget -c -t 0 http://download.redis.io/releases/redis-2.8.19.tar.gz tar xvf redis-2.8.19.tar.gz cd redis-2.8.19 make
启动redis
编译安装好之后如下所示
修改redis.conf将daemonize no改为yes
启动redis 启动没有报错,则配置正确
src/redis-server redis.conf
编写PHP的测试代码
创建redis.php,在redis.php中输入如下代码 编写redis.php到你的httpd服务器的发布目录
<?php $redis = new Redis(); $redis->connect('192.168.152.129',6379) or die ("could net connect redis server"); #这里的ip地址为redis的IP地址 #$query = "select * from test1 limit 9"; $query = "select * from test1"; #这里是你的数据库中的表名 for ($key = 1; $key < 10; $key++) { if (!$redis->get($key)) { $connect = mysql_connect('192.168.152.131','root','Lwj@1229');#这里的ip为你的mysql数据库的ip地址,密码为mysql的密码 mysql_select_db(tom); #这里为数据库的库名 $result = mysql_query($query); //如果没有找到$key,就将该查询sql的结果缓存到redis while ($row = mysql_fetch_assoc($result)) { $redis->setex($row['id'],10,$row['name']); } $myserver = 'mysql'; break; } else { $myserver = "redis"; $data[$key] = $redis->get($key); } } echo $myserver; echo "<br>"; for ($key = 1; $key < 10; $key++) { echo "number is <b><font color=#FF0000>$key</font></b>"; echo "<br>"; if (array_key_exists($key,$data) && !empty($data[$key])) { echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
测试验证
要先和redis连接,才能查询到数据库中的数据
如上即为实现了redis作为mysql的缓存服务器