redis集群搭建步骤[在linux模拟搭建]

1.先在linux安装redis,具体可以参考:

Linux下redis的安装以及使用
2.本次搭建需要6台服务器,由于虚拟机不能开太多,所以就在一台虚拟机上搭建6台服务器,是一个为分布式.
在安装redis完成之后,使用以下命令:
这里写图片描述

cp  -r redis/bin redis-cluster/redis01

然后使用 ll命令查看所有文件

这里写图片描述

将这个快照文件删除

rm -rf dump.rdb

然后编辑redis.conf文件

vim redis.conf

大概在45行的位置,将端口号改为7001
这里写图片描述

大概在633行将cluster-enabled yes打开

这里写图片描述

然后复制多份redis01文件,分别将redis.conf文件中的端口号改为7002,7003,7004,7005,7006

cp -r redis01/ redis02
cp -r redis01/ redis03
cp -r redis01/ redis04
cp -r redis01/ redis05
cp -r redis01/ redis06

然后创建一个批处理文件,统一开启所有的服务

vim start-all.sh

里面的内容为:

cd  redis01
./redis-server redis.conf
cd..
cd  redis02
./redis-server redis.conf
cd..
cd  redis03
./redis-server redis.conf
cd..
cd  redis04
./redis-server redis.conf
cd..
cd  redis05
./redis-server redis.conf
cd..
cd  redis06
./redis-server redis.conf
cd..

退出保存,然后修改start-all.sh文件的权限,让其可执行

chmod +x start-all.sh

然后就可以执行这个文件了

./start-all.sh

使用下面这个命令查看是否启动

ps aux |grep redis

2.集群搭建环境

1、使用ruby脚本搭建集群。需要ruby的运行环境。安装ruby

yum install ruby
yum install rubygems

然后将这个文件上传到根目录下

这里写图片描述

在根目录下找到redis-3.0.0.gem文件,然后安装ruby脚本运行使用的包。

gem install redis-3.0.0.gem 

然后进入到redis安装目录下的src目录下

cd redis-3.0.0/src

找到.rb文件,将其复制到redis-cluster文件夹下

 cp *.rb /usr/local/redis-cluster/

然后使用以下这个命令创建集群 (192.168.254.128为服务器的ip地址,7001-7006位端口号)

./redis-trib.rb create --replicas 1 192.168.254.128:7001 192.168.254.128:7002 192.168.254.128:7003 192.168.254.128:7004 192.168.254.128:7005 192.168.254.128:7006

然后会生成一大串东西,不用管.直到看到这个[OK] All 16384 slots covered.证明搭建成功了.

>>> Creating cluster
Connecting to node 192.168.254.128:7001: OK
Connecting to node 192.168.254.128:7002: OK
Connecting to node 192.168.254.128:7003: OK
Connecting to node 192.168.254.128:7004: OK
Connecting to node 192.168.254.128:7005: OK
Connecting to node 192.168.254.128:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.254.128:7001
192.168.254.128:7002
192.168.254.128:7003
Adding replica 192.168.254.128:7004 to 192.168.254.128:7001
Adding replica 192.168.254.128:7005 to 192.168.254.128:7002
Adding replica 192.168.254.128:7006 to 192.168.254.128:7003
M: a0095a091cecdb4e341bf812e63152d1bc77e4dc 192.168.254.128:7001
   slots:0-5460 (5461 slots) master
M: 5a361790bcfb83892b8440fa39d99ffeb0e6d13e 192.168.254.128:7002
   slots:5461-10922 (5462 slots) master
M: 48c268389b581505e71bea67d8afa7209c158ec0 192.168.254.128:7003
   slots:10923-16383 (5461 slots) master
S: efe542c6210cbdc9e757596585012f0c953aebfd 192.168.254.128:7004
   replicates a0095a091cecdb4e341bf812e63152d1bc77e4dc
S: 53e665f942ef30e63975246ad4bb6d82f1a565e2 192.168.254.128:7005
   replicates 5a361790bcfb83892b8440fa39d99ffeb0e6d13e
S: eee775e1e2d14ca407d4e88be677b847d2073bf1 192.168.254.128:7006
   replicates 48c268389b581505e71bea67d8afa7209c158ec0
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.254.128:7001)
M: a0095a091cecdb4e341bf812e63152d1bc77e4dc 192.168.254.128:7001
   slots:0-5460 (5461 slots) master
M: 5a361790bcfb83892b8440fa39d99ffeb0e6d13e 192.168.254.128:7002
   slots:5461-10922 (5462 slots) master
M: 48c268389b581505e71bea67d8afa7209c158ec0 192.168.254.128:7003
   slots:10923-16383 (5461 slots) master
M: efe542c6210cbdc9e757596585012f0c953aebfd 192.168.254.128:7004
   slots: (0 slots) master
   replicates a0095a091cecdb4e341bf812e63152d1bc77e4dc
M: 53e665f942ef30e63975246ad4bb6d82f1a565e2 192.168.254.128:7005
   slots: (0 slots) master
   replicates 5a361790bcfb83892b8440fa39d99ffeb0e6d13e
M: eee775e1e2d14ca407d4e88be677b847d2073bf1 192.168.254.128:7006
   slots: (0 slots) master
   replicates 48c268389b581505e71bea67d8afa7209c158ec0
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

3.使用redis-cli连接集群

redis01/redis-cli -p 7002 -c

-c:代表连接的是redis集群

下面这个命令是查看集群的信息:

cluster info

这里写图片描述

cluster nodes命令查看节点的信息

这里写图片描述

4.使用JedisCluster连接集群

@Test
    public void testJedisCluster() throws Exception {
        // 第一步:使用JedisCluster对象。需要一个Set<HostAndPort>参数。Redis节点的列表。
        Set<HostAndPort> nodes = new HashSet<>();
        nodes.add(new HostAndPort("192.168.254.128", 7001));
        nodes.add(new HostAndPort("192.168.254.128", 7002));
        nodes.add(new HostAndPort("192.168.254.128", 7003));
        nodes.add(new HostAndPort("192.168.254.128", 7004));
        nodes.add(new HostAndPort("192.168.254.128", 7005));
        nodes.add(new HostAndPort("192.168.254.128", 7006));
        JedisCluster jedisCluster = new JedisCluster(nodes);
        // 第二步:直接使用JedisCluster对象操作redis。在系统中单例存在。
        jedisCluster.set("cluster-test01", "1008611");
        String result = jedisCluster.get("cluster-test01");
        // 第三步:打印结果
        System.out.println(result);
        // 第四步:系统关闭前,关闭JedisCluster对象。
        jedisCluster.close();
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘟哒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值