准备
- 之前本地搭建的虚拟环境将其复制一份,重置MAC地址等。总之就是本地搭建了两台服务器,一台ip:192.168.25.98(定义为98A) 另一台ip:192.168.25.87(定义为87B)
一、对98A进行操作
- 将98A的redis配置修改(98A假设启用两个redis)
# 将redis的数据库放在这个位置
dir /var/data/redis_6379
# 将redis的数据库放在这个位置
dir /var/data/redis_6390
pidfile /var/run/redis_6390.pid
port 6390
- 修改98A的启动项
# 真实的为 vim /etc/rc.d/rc.local
vim /etc/rc.local
# 加入
/usr/local/redis/src/redis-server /etc/redis.conf
/usr/local/redis/src/redis-server /etc/redis_6390.conf
3. 检查/var目录是否有redis配置中的目录(没有就mkdir)
mkdir -p /var/data/redis_6379
mkdir -p /var/data/redis_6390
4.重启服务器(不想重启就手动开启redis)
#先看有没有启动进程如果有就杀死进程
ps aux | grep redis
kill -9 [进程id]
# 手动开启(同rc.local中加入的两行)
/usr/local/redis/src/redis-server /etc/redis.conf
/usr/local/redis/src/redis-server /etc/redis_6390.conf
5. 检查进程
ps aux | grep redis
6. 使用php测试98A(新建两个文件)
<?php
// 新建98A6379.php
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->set('key6379', '这是98A6379端口的');
echo $redis->get('key6379');
var_dump($redis->keys('*'));
<?php
// 新建98A6390.php
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6390);
$redis->set('key6390', '这是98A6390端口的');
echo $redis->get('key6390');
var_dump($redis->keys('*'));
结果:
都只有一个key,/va/data目录也生成了各自的文件,说明成功
二、对87B进行操作
- 新建87B6379.php并写入
<?php
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->set('key6379_87B', '这是87B6379端口的');
echo $redis->get('key6379_87B');
var_dump($redis->keys('*'));
2.开始配置87B默认6379端口的配置
vim /etc/redis.conf
# 找到slaveof 并加入98A的其中一个ip和端口
slaveof 192.168.25.98 6379
保存退出
3. 找到87B的redis进程并杀死,再重启redis
ps aux | grep redis
kill -9 1766
/usr/local/redis/src/redis-server /etc/redis.conf
4. 修改87B6379.php
<?php
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
// $redis->set('key6379_87B', '这是87B6379端口的');
// echo $redis->get('key6379_87B');
var_dump($redis->keys('*'));
结果失败了
想了想失败的原因,最后确定是ip的问题(即主机帮定的ip的问题)
因此将主Redis(98A)配置(redis.conf和redis_6390.conf)中的都改成各自的真实ip
# 绑定外网ip和回环ip(一个是可以让外部访问一个可以让本地访问)
bind 192.168.25.98 127.0.0.1
成功