准备工作
安装redis,修改为后台进程模式。
注意测试的两个redis最好放在2个不同目录下,不然生成的aof文件会混淆2台redis
一:命令实现主从
- 复制redis下redis.conf 为redis1-conf和redis2-conf两个文件
- 修改redis1-conf中port为63791,
- 修改redis2-conf中port为63792,
- ./redis-cli -p 63791 连接第一个redis
- ./redis-cli -p 63792 连接第二个redis
- 通过get和set设置数据发现redis都是各自独立数据。
- 在redis2 中执行 slaveof 127.0.0.1 63791,这个时候,redis2的数据全部和1中的相同,并且redis2只能读,不能写。
- 这个时候jedis读取的时候,ip还是只能写主,如果需要切换需要手动切换。
二:jedis实现主从:
- 2台redis完全独立,没有做任何主从配置的情况下,用如下代码实现主从
import redis.clients.jedis.Jedis;
public class MasterAndSlaveTest {
public static void main(String[] args) throws InterruptedException {
Jedis jedis_M = new Jedis("192.168.248.129",6379);//主机
Jedis jedis_S = new Jedis("192.168.248.129",6380);//从机
//遵循“配从不配主”的模式
jedis_S.slaveof("192.168.248.129",6379);
jedis_M.set("class", "8888");//主机去写
//内存中读写太快,防止读在写之前先完成而出现null的情况,这里做一下延迟
Thread.sleep(2000);
String result = jedis_S.get("class");//从机去读
System.out.println(result);
}
}
三:配置实现主从
- 在conf配置文件中增加 slaveof 127.0.0.1 63791 也可以实现主从