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

来源:互联网 发布:盛世投资 知乎 编辑:程序博客网 时间:2024/06/01 21:34

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/ redis02cp -r redis01/ redis03cp -r redis01/ redis04cp -r redis01/ redis05cp -r redis01/ redis06

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

vim start-all.sh

里面的内容为:

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

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

chmod +x start-all.sh

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

./start-all.sh

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

ps aux |grep redis

2.集群搭建环境

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

yum install rubyyum 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 clusterConnecting to node 192.168.254.128:7001: OKConnecting to node 192.168.254.128:7002: OKConnecting to node 192.168.254.128:7003: OKConnecting to node 192.168.254.128:7004: OKConnecting to node 192.168.254.128:7005: OKConnecting to node 192.168.254.128:7006: OK>>> Performing hash slots allocation on 6 nodes...Using 3 masters:192.168.254.128:7001192.168.254.128:7002192.168.254.128:7003Adding replica 192.168.254.128:7004 to 192.168.254.128:7001Adding replica 192.168.254.128:7005 to 192.168.254.128:7002Adding replica 192.168.254.128:7006 to 192.168.254.128:7003M: a0095a091cecdb4e341bf812e63152d1bc77e4dc 192.168.254.128:7001   slots:0-5460 (5461 slots) masterM: 5a361790bcfb83892b8440fa39d99ffeb0e6d13e 192.168.254.128:7002   slots:5461-10922 (5462 slots) masterM: 48c268389b581505e71bea67d8afa7209c158ec0 192.168.254.128:7003   slots:10923-16383 (5461 slots) masterS: efe542c6210cbdc9e757596585012f0c953aebfd 192.168.254.128:7004   replicates a0095a091cecdb4e341bf812e63152d1bc77e4dcS: 53e665f942ef30e63975246ad4bb6d82f1a565e2 192.168.254.128:7005   replicates 5a361790bcfb83892b8440fa39d99ffeb0e6d13eS: eee775e1e2d14ca407d4e88be677b847d2073bf1 192.168.254.128:7006   replicates 48c268389b581505e71bea67d8afa7209c158ec0Can 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 clusterWaiting 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) masterM: 5a361790bcfb83892b8440fa39d99ffeb0e6d13e 192.168.254.128:7002   slots:5461-10922 (5462 slots) masterM: 48c268389b581505e71bea67d8afa7209c158ec0 192.168.254.128:7003   slots:10923-16383 (5461 slots) masterM: efe542c6210cbdc9e757596585012f0c953aebfd 192.168.254.128:7004   slots: (0 slots) master   replicates a0095a091cecdb4e341bf812e63152d1bc77e4dcM: 53e665f942ef30e63975246ad4bb6d82f1a565e2 192.168.254.128:7005   slots: (0 slots) master   replicates 5a361790bcfb83892b8440fa39d99ffeb0e6d13eM: 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();    }
原创粉丝点击