Redis集群安装

作者: 压根儿没快乐过 | 来源:发表于2019-07-02 21:04 被阅读0次

看了几年前的Redis集群安装,那还是3.4的Redis,恍如时光

在Github上下载了一个项目,spring也没有用上,各种都是那人自己手动封装,包括解析xml,牛逼是牛逼,倒是跑起来也是贼麻烦的,一直卡在Redis的集群里,本来想让公司的运维装个Redis集群直接让我用, 结过,弄了两次,代码连接redis一直报错

也不太想麻烦别人了,就自己临时搭一个,还是招这几年前的笔记,哈哈哈,有点怀恋

image

1.配置

用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。

worker1 worker2
192.168.0.179 7000
192.168.0.179 7001
192.168.0.179 7002
192.168.0.100 7003
192.168.0.100 7004
192.168.0.100 7005

2.下载,解压,编译安装

在worker1上

cd /usr/local
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz
cd redis-5.0.5
make && make instal

注意make的时候可能会报错,

yum install gcc
make MALLOC=libc

3.创建节点,在worker1

创建文件

cd /usr/local
mkdir redis_cluster
cd redis_cluster
mkdir 7000
mkdir 7001
mkdir 7002
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis_cluster/7000/
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis_cluster/7001/
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis_cluster/7002/

分别修改三个文件夹里的配置文件,修改如下内容

port  7000      //端口7000,7002,7003       
bind 0.0.0.0     //自己建议修改为0.0.0.0
daemonize yes   //redis后台运行
pidfile  /var/run/redis_7000.pid    //pidfile文件对应7000,7001,7002
cluster-enabled  yes    //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置,配置文件首次启动自动生成7000,7001,7002
cluster-node-timeout  15000  //请求超时  默认15秒,可自行设置
appendonly  yes //aof日志开启 

启动节点的redis
/usr/local/bin/redis-server 这是在make & make install生成的

/usr/local/bin/redis-server redis_cluster/7000/redis.conf
/usr/local/bin/redis-server redis_cluster/7001/redis.conf
/usr/local/bin/redis-server redis_cluster/7002/redis.conf

检查 redis 启动情况

ps -ef | grep redi
root      61020      1  0 02:14 ?        00:00:01 redis-server 0.0.0.0:7000 [cluster]   
root      61024      1  0 02:14 ?        00:00:01 redis-server 0.0.0.0:7001 [cluster]   
root      61029      1  0 02:14 ?        00:00:01 redis-server 0.0.0.0:7002 [cluster]

4.再在worker2 上做相同的操作

5.启动集群

装的redis是5.x的版本,这里没有应用到redis-trib.rb,所以就不需要装ruby

cd /usr/local/bin
redis-cli --cluster create 192.168.0.100:7003 192.168.0.100:7004 192.168.0.100:7005 192.168.0.179:7000 192.168.0.179:7001 192.168.0.179:7002 --cluster-replicas 1

遇到

Can I set the above configuration? (type 'yes' to accept): yes

输入yes

6.校验,等运行完成

redis-cli --cluster check 192.168.0.179:7000

[root@worker1 src]# redis-cli --cluster check 192.168.0.179:7000
192.168.0.179:7000 (27bce53b...) -> 0 keys | 5462 slots | 1 slaves.
192.168.0.100:7004 (6b0173d9...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.100:7003 (9f15a932...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.179:7000)
M: 27bce53bda92341ca4a5c82c2361ab99f24c0b27 192.168.0.179:7000
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: c7ebcd900fb7d9afb1980797acba45518cb7d877 192.168.0.100:7005
   slots: (0 slots) slave
   replicates 27bce53bda92341ca4a5c82c2361ab99f24c0b27
S: ed5256f8db1bf556a8dadbe8f2b07699507e17d9 192.168.0.179:7001
   slots: (0 slots) slave
   replicates 6b0173d925f70807a9081b7bc09bcd37be857342
S: 758609eaea88bac25b864f2badbab2171a68089b 192.168.0.179:7002
   slots: (0 slots) slave
   replicates 9f15a9329a9d0ec5c7fcb5abbba817730f0942f9
M: 6b0173d925f70807a9081b7bc09bcd37be857342 192.168.0.100:7004
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
M: 9f15a9329a9d0ec5c7fcb5abbba817730f0942f9 192.168.0.100:7003
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

7.Jedis操作Redis集群

public class Demo {
    private static JedisCluster jedisCluster=null;
    private static Set<HostAndPort> hostAndPorts=null;

    public static  Set<HostAndPort> getHostAndPort(String hostAndPort){
        Set<HostAndPort> hap = new HashSet<HostAndPort>();
        String[] hosts = hostAndPort.split(",");
        String[] hs = null;
        for(String host:hosts){
            hs=host.split(":");
            hap.add(new HostAndPort(hs[0], Integer.parseInt(hs[1])));
        }
        return hap;
    }

    public static JedisCluster getJedisCluster(){
        GenericObjectPoolConfig gopc = new GenericObjectPoolConfig();
        gopc.setMaxTotal(32);
        gopc.setMaxIdle(4);
        gopc.setMaxWaitMillis(6000);
        hostAndPorts = getHostAndPort("192.168.0.100:7003,192.168.0.100:7004,192.168.0.100:7005,192.168.0.179:7000,192.168.0.179:7001,192.168.0.179:7002");
        jedisCluster = new JedisCluster(hostAndPorts, 2000, 2000, 3,null,gopc);
        return jedisCluster;
    }

    public static void main(String[] args) {
        jedisCluster = getJedisCluster();
        jedisCluster.set("name", "anthony");
        System.out.println(jedisCluster.get("name"));
    }
}

更多可以访问我的博客:https://yanganlin.com

相关文章

  • Redis 集群规范

    redis手册Redis 集群规范Redis集群安装Redis集群安装 Redis分布式部署,一致性hash;分布...

  • Redis 4.0集群配置

    Redis 集群,官方方案需要6个节点,3个主3个从。 安装依赖软件 安装redis 集群配置 创建集群 集群测试...

  • redis集群安装

    集群的概念 Redis集群提供了一种运行Redis安装的方式,其中数据自动分割多个Redis节点。Redis集群的...

  • 【Redis】集群NetCore实战

    环境准备 Redis集群(Windows集群搭建)启动Redis集群,给每个节点加上Title 安装StackEx...

  • 17.redis集群

    Redis集群 本章是基于CentOS7下的Redis集群教程,包括: 单机安装Redis Redis主从 Red...

  • Redis集群搭建

    第1集 Redis集群搭建这回事 简介:Redis集群搭建实战,赠送Redis图文搭建教程 安装redis处理步骤...

  • CentOS7安装Redis集群

    安装依赖 安装官方脚本 下载Redis源码 搭建Redis集群 创建集群 添加防火墙过滤 如有错误,欢迎指出。

  • Redis目录

    安装 Redis安装 RedisCluster高可用集群搭建(一) RedisCluster高可用集群搭建(二) ...

  • redis cluster(集群)配置

    环境说明 : 配置redis哨兵前,先安装好redis,安装文档请参考:redis安装 redis集群是一个无中心...

  • redis_集群搭建

    利用docker-compose编排redis集群 官方工具安装 下载、编译、安装 Ruby 安装 redis-t...

网友评论

    本文标题:Redis集群安装

    本文链接:https://www.haomeiwen.com/subject/auqxhctx.html