轻松搭建Redis缓存高可用集群

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1. 安装单机Redis

安装步骤:

1.1 下载redis

官网下载3.0.0版本,之前几的版本不支持集群模式

下载地址:http://download.redis.io/releases/redis-3.0.0.tar.gz

1.2 首先需要安装gcc

yum install gcc 

在这里插入图片描述

1.3 创建目录

 cd /usr/
 mkdir soft

1.4 拷贝jar包并解压

[root@worker01 ~]# cp redis-3.0.0.tar.gz /usr/soft/
[root@worker01 ~]# cd /usr/soft/
[root@worker01 soft]# ls
redis-3.0.0.tar.gz
[root@worker01 soft]# tar -xf redis-3.0.0.tar.gz
[root@worker01 soft]# ls
redis-3.0.0  redis-3.0.0.tar.gz
[root@worker01 soft]# 

1.5 编译

[root@worker01 soft]# cd redis-3.0.0
[root@worker01 redis-3.0.0]# ls
00-RELEASENOTES  CONTRIBUTING  deps     Makefile   README      runtest          runtest-sentinel  src    utils
BUGS             COPYING       INSTALL  MANIFESTO  redis.conf  runtest-cluster  sentinel.conf     tests
[root@worker01 redis-3.0.0]# make

安装成功如下:

在这里插入图片描述

1.6 创建目录并拷贝redis.conf

[root@worker01 src]# mkdir -p /usr/local/redis/etc
[root@worker01 src]# mkdir -p /usr/local/redis/bin
[root@worker01 redis-3.0.0]# cp /usr/soft/redis-3.0.0/redis.conf /usr/local/redis/etc/
[root@worker01 redis-3.0.0]# 

1.7 拷贝文件到bin目录

[root@worker01 src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
[root@worker01 src]# pwd
/usr/soft/redis-3.0.0/src
[root@worker01 src]# 

1.8 修改后代模式启动

[root@worker01 redis]# cd etc
[root@worker01 etc]# vi redis.conf

在这里插入图片描述

1.9 启动redis

[root@worker01 redis]# bin/redis-server etc/redis.conf

1.10 验证启动redis

[root@worker01 redis]# ps -ef|grep redis
root       8333      1  0 22:11 ?        00:00:00 bin/redis-server *:6379
root       8338   4715  0 22:12 pts/2    00:00:00 grep --color=auto redis
[root@worker01 redis]# 

1.11 进入redis客户端查看

/usr/local/redis/bin/redis-cli

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2. Redis集群搭建

[root@worker01 local]# mkdir -p /usr/local/redis-cluster
[root@worker01 local]# cd redis-cluster
[root@worker01 redis-cluster]# mkdir 8001
[root@worker01 redis-cluster]# mkdir 8002
[root@worker01 redis-cluster]# mkdir 8003
[root@worker01 redis-cluster]# mkdir 8004
[root@worker01 redis-cluster]# mkdir 8005
[root@worker01 redis-cluster]# mkdir 8006

2.1 修改端口和虚拟主机ip等配置信息

cd /usr/local/redis-cluster/8001/
vi redis.conf
#在redis.conf修改以下内容
port 8001
bind 192.168.179.128
dir /usr/local/redis-cluster/8001/
cluster-enabled yes
cluster-config-file nodes-8001.conf
cluster-node-timeout 5000
appendonly yes

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2 拷贝配置信息

root@worker01 8001]# cd /usr/local/redis-cluster/8001
[root@worker01 8001]# cp redis.conf ../8002
[root@worker01 8001]# cp redis.conf ../8003
[root@worker01 8001]# cp redis.conf ../8004
[root@worker01 8001]# cp redis.conf ../8005
[root@worker01 8001]# cp redis.conf ../8006

2.3 替换配置文件信息

[root@worker01 ~]# cd /usr/local/redis-cluster/
[root@worker01 redis-cluster]# vi 8002/redis.conf
:%s/8001/8002/g
[root@worker01 redis-cluster]# vi 8003/redis.conf
:%s/8001/8003/g
[root@worker01 redis-cluster]# vi 8004/redis.conf
:%s/8001/8004/g
[root@worker01 redis-cluster]# vi 8005/redis.conf
:%s/8001/8005/g
[root@worker01 redis-cluster]# vi 8006/redis.conf
:%s/8001/8006/g

2.4 启动redis-server

[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8001/redis.conf
[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8002/redis.conf
[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8003/redis.conf
[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8004/redis.conf
[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8005/redis.conf
[root@worker01 redis-cluster]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/8006/redis.conf

在这里插入图片描述

由于redis集群需要使用ruby命令,所以我们需要安装ruby

yum install ruby
yum install rubygems
#本地安装
gem install -l redis-3.0.0.gem

在这里插入图片描述

在redis3的安装目录下执行redis-trib.rb 命令创建整个redis的集群

cd /usr/soft/redis-3.0.0/src
./redis-trib.rb create --replicas 1 192.168.179.128:8001 192.168.179.128:8002 192.168.179.128:8003 192.168.179.128:8004 192.168.179.128:8005 192.168.179.128:8006

在这里插入图片描述

验证集群

在这里插入图片描述

[root@worker01 src]# /usr/local/redis/bin/redis-cli -c -h 192.168.179.128 -p 8001
127.0.0.1:8001> cluster info
127.0.0.1:8001> cluster nodes

在这里插入图片描述

192.168.179.128:8001> set name zhuge
-> Redirected to slot [5798] located at 192.168.179.128:8002
OK
192.168.179.128:8002> get name
"zhuge"
192.168.179.128:8002> set name1 zhuge2
-> Redirected to slot [12933] located at 192.168.179.128:8003
OK
192.168.179.128:8003> get name1
"zhuge2"
192.168.179.128:8003> set name2 zhuge3
-> Redirected to slot [742] located at 192.168.179.128:8001
OK
192.168.179.128:8001> get name2
"zhuge3"
192.168.179.128:8001> get name1
-> Redirected to slot [12933] located at 192.168.179.128:8003
"zhuge2"
192.168.179.128:8003>

在这里插入图片描述

3. Java操作Redis集群

借助redis的java客户端redis可以操作以上集群

  <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
package com.itheima.redis;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

public class RedisCluster {
    public static void main(String[] args) throws IOException {
        Set<HostAndPort> jedisclusterNode=new HashSet<HostAndPort>();
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8001));
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8002));
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8003));
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8004));
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8005));
        jedisclusterNode.add(new HostAndPort("192.168.179.128",8006));
        JedisPoolConfig config=new JedisPoolConfig();
        config.setMaxTotal(100);
        config.setMaxIdle(10);
        config.setTestOnBorrow(true);
        JedisCluster jedisCluster=new JedisCluster(jedisclusterNode,6000,10,config);
        System.out.println(jedisCluster.set("student","aaron"));
        System.out.println(jedisCluster.set("age","18"));

        System.out.println(jedisCluster.get("student"));
        System.out.println(jedisCluster.get("age"));
        //jedisCluster.close();
    }
}


运行java程序查看

在这里插入图片描述

命令行测试

在这里插入图片描述

关闭8001 redis服务并查看

[root@worker01 src]# /usr/local/redis/bin/redis-cli -c -h 192.168.179.128 -p 8001 shutdown
[root@worker01 src]# ps -ef|grep redis

在这里插入图片描述
由图可知8001 已经设置为 master fail, 8004重新变成主节点

[root@worker01 src]# /usr/local/redis/bin/redis-cli -c -h 192.168.179.128 -p 8002
192.168.179.128:8002> cluster nodes

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值