基于memcache实例搭建:
web(php)主机: 192.168.181.6
redis主机: 192.168.181.5
mysql主机: 192.168.181.4
首先关闭三台主机的防火墙
systemctl stop firewalld
systemctl disable firewalld
sed -i ‘s/enforcing/disabled/’/etc/selinux/config
setenforce 0
同步时间
yum -y install ntp ntpdate
ntpdate cn.pool.ntp.org
hwclock --systohc
- 在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
- yum install gcc gcc-c++
- 安装php的redis扩展:
4.将压缩包解压到文件中;
5,然后再目录下进行解压: tar -zxvf 文件,进入目录, cd redis-2.2.7/
7执行命令:./configure
- 执行make install 可能会出现一个错误(atal error: zend_smart_str.h: No such file or directory
是php中redis模块没有加载的错误需要下载插件)
使用如下命令: wget http://pecl.php.net/get/redis-2.2.7.tgz
将这下载的包放入到于上面相同的目录下.
8.然后进行解压: tar -zxvf redis-2.2.7.tgz
- cd redis-2.2.7/
- ./configure --with-php-config=/usr/bin/php-config
然后执行make命令,就不会在报错了,
10.编译完成后就可以看到安装目录下,进入就可以看到编译的模块redis.so
- 使用vim修改配置文件; /etc/php.ini;在文件最后添加: extension=redis.so
- 重启web服务器的httpd服务;systemctl restart httpd
- 在/var/www/html 目录下创建php页面代码:
-
<?php phpinfo(); ?>
- .然后进行访问
然后在window下浏览器中访问该页面: 出现一下页面则表示前面的配置成功
//
在redis主机上安装redis:
yum install -y gcc gcc-c++
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
如果有错误可以参考我的另一篇文章:(1条消息) Redis安装测试_ゾ 吴爃ヅ的博客-CSDN博客https://blog.csdn.net/qq_59369367/article/details/121596185
启动如果没有报错,则配置正确
在转到web主机上: 在/var/www/html/目录下创建redis.php测试页面:
代码如下:
<?php
$redis = new Redis();
$redis->connect('192.168.181.5',6379) or die ("could net connect redis server");
$query = "select * from employee5 limit 8"; //红这里是你的数据库里的表名
//为了简单一点,这里就读取了8条数据
for ($key = 1; $key < 9; $key++)
{
if (!$redis->get($key))
{
$connect = mysql_connect('192.168.181.4','root','Nebula@123');
//这里是你的数据ip地址和用户名,密码.
mysql_select_db(test); //这里是你的数据库名
$result = mysql_query($query);
//如果没有找到$key,就将该查询sql的结果缓存到redis
while ($row = mysql_fetch_assoc($result))
{
$redis->set($row['id'],$row['name']);
}
$myserver = 'mysql';
break;
}
else
{
$myserver = "redis";
$data[$key] = $redis->get($key);
}
}
echo $myserver;
echo "<br>";
for ($key = 1; $key < 9; $key++)
{
echo "number is <b><font color=#FF0000>$key</font></b>";
echo "<br>";
echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
echo "<br>";
}
?>
然后去浏览器中访问该页面:
第一次访问: (数据会首先从mysql数据库直接访问,)
再次刷新访问的时候: 此时redis已经有了相关数据,会显示出redis中内容是以键值对方式.
到这里就是测试链接成功了.
排错: 在最后链接的地方很容易报错:
这里大部分错误时因为防火墙的原因,数据库主机的防火墙,selinux,都要关闭.
你所使用的数据库用户,要有你所查看的数据库的访问权限,
使用该命令:select user,host,plugin from mysql.user;
可以查看到所给的权限,