Redis 虚拟机/Windows安装+主从复制(详细版)


目前,主从复制 读写分离已经成为一种常用的策略。使用两台虚拟机进行主从复制的文章已经很多,我今天使用Linux虚拟机+Windows实现Redis的主从复制
实现结果:
在这里插入图片描述

  • 主机: VMware CentOS6.3
    Redis版本:2.8.9 设置端口6380
  • 从机: Windows 10
    Redis版本:3.2.100默认端口6379

1.主机(CentOS6.3)Redis安装

1.安装gcc(C程序的编译工具)

  • 设置桥接方式连网
    设置DNS[否则会有Couldn’t resolve host 'mirrors.aliyun.com’问题]
cd /etc/sysconfig/network-scripts

gedit ifcfg-eth0
  • 配置如下:
DEVICE="eth0"
BOOTPROTO=static
HWADDR="00:0C:29:A3:ED:5A"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=172.18.214.20
GATEWAY=172.18.0.1
NETMASK=255.255.0.0
DNS1=8.8.8.8
DNS2=8.8.4.4
yum install gcc-c++
  • 查看版本
gcc -v

gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)

2.安装redis

1.安装tcl支持

yum install tcl

2.安装redis我们以2.8.9为例
[注意:不要安装太新的版本!如果你用的CentOS也是6.3版本,安装太新的Redis需要个更高版本的gcc,gcc手动安装比较麻烦]

wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar xzf redis-2.8.9.tar.gz
cd redis-2.8.9
make
make test
make install

3.备份出厂默认设置
新建/myredis

cp redis.conf /myredis/

======>修改备份的

gedit /myredis/redis.conf 
daemonize yes

3.启动

redis-server /myredis/redis.conf
redis-cli -p 6379  启动
127.0.0.1:6379> ping 
PONG

成功

  • 关闭
redis-cli shutdown

4.修改端口号

gedit /myredis/redis.conf 
port 6380

重新启动

redis-server /myredis/redis.conf
redis-cli -p 6380

关闭

redis-cli shutdown

2.从机(Windows)Redis安装及配置

1.下载地址

https://pan.baidu.com/s/1z1_OdNVbtgyEjiktqgB83g

2.不使用服务启动(不推荐)

cd/d E:\java_exercise\javaUtils\Redis-x64-3.2.100
redis-server redis.windows.conf	
启动成功

3.设置服务命令,启动

redis-server --service-install redis.windows-service.conf --loglevel verbose
  • 在WIN+R services. msc 服务中看到redis 。开启服务:
redis-server --service-start

[15120] 06 May 13:26:07.715 # Redis service successfully started.

  • 查看进程:
tasklist|findstr "redis"
  • 启动:
redis-cli -p 6379
  • 关闭:
redis-cli shutdown

3.使用NAT方式连网


4.CentOS+Windows主从复制

1.修改配置文件

  • 主机:添加
gedit /myredis/redis.conf
bind 169.254.0.129

在这里插入图片描述

  • 以后启动要
redis-cli -h 169.254.0.129 -p 6380
  • 从机修改带service那个配置文件(根据ipconfig)

在这里插入图片描述

bind 169.254.0.1 127.0.0.1

2.开启服务

  • 从机:
redis-server --service-start
  • 主机:
redis-server /myredis/redis.conf

3.idea

package indi.huishi.redis;

import redis.clients.jedis.Jedis;

/**
 * @Author: Huishi
 * @Date: 2021/5/6 17:19
 */
public class MasterSlaveTest {
    
    
    public static void main(String[] args) {
    
    
        // 主机Centos
        Jedis jedis_mas = new Jedis("169.254.0.129", 6380);
        System.out.println(jedis_mas.ping());
        // 从机
        Jedis jedis_slv = new Jedis("169.254.0.1", 6379);
        System.out.println(jedis_slv.ping());
        // 配从不配主
//        jedis_slv.slaveofNoOne();
//        jedis_mas.slaveofNoOne();
        String s = jedis_slv.slaveof("169.254.0.129", 6380);
        System.out.println(s);
//        System.out.println("从机"+jedis_slv.info());
//        System.out.println("主机"+jedis_mas.info());

        // 主机写
        jedis_mas.set("money","1000L");
        // 从机读
        String money = jedis_slv.get("money");
        System.out.println(money);
    }
}

结果

在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_36937684/article/details/116461974