一、原生命令方式和Ruby脚本方式区别

利用Ruby脚本部署和用原生命令部署,节点准备的步骤都是一样的,节点启动后的握手,以及主从、槽分配,利用Ruby脚本一步就能完成,利用原生命令需要一步一步地执行命令完成。

二、部署架构:3台服务器,互为主从,3主3从

三、准备6个节点配置文件

在172.28.18.75上操作

cd /etc/redis

vim redis-25701.conf

bind 172.28.18.75
port 25701
masterauth "Zaq1xsw@"
requirepass "Zaq1xsw@"
protected-mode yes
daemonize yes
dir "/etc/redis"
pidfile "/var/run/redis_25701.pid"
loglevel notice
logfile "redis-25701.log"
dbfilename "dump-25701.rdb" cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file node-25701.conf
cluster-require-full-coverage no

替换端口号,并生成一个从节点配置文件

sed 's/25701/25702/g' redis-25701.conf > redis-25702.conf

复制这两个配置文件到172.28.18.103和172.28.18.104对应的目录下

scp -P25601 redis-25701.conf root@172.28.18.103:/etc/redis/

scp -P25601 redis-25702.conf root@172.28.18.103:/etc/redis/

scp -P25601 redis-25701.conf root@172.28.18.104:/etc/redis/

scp -P25601 redis-25702.conf root@172.28.18.104:/etc/redis/

四、启动6个节点

redis-server redis-25701.conf

查看redis-25701.log

集群模式运行成功,再启动其他5个节点,至此节点准备完毕。

五、安装Ruby环境

1、下载

wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz

2、解压

tar -zxvf  ruby-2.3.1.tar.gz

3、编译

cd ruby-2.3.1

./configure -prefix=/usr/local/ruby

make && make install

4、建立软连接

ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby

ln -s /usr/local/ruby/bin/gem /usr/local/bin/gem

5、执行

ruby -v

六、安装Ruby的redis客户端 redis-3.3.0.gem

1、下载

cd /usr/local/src

wget http://rubygems.org/downloads/redis-3.3.0.gem

2、安装

gem install -l redis-3.3.0.gem

3、验证

gem list -- check redis gem

七、安装redis-trib.rb脚本

cp /usr/local/src/redis-4.0.2/src/redis-trib.rb /usr/local/bin/

八、利用redis-trib.rb脚本部署集群

1、首选确保各个节点的redis配置文件里,不能有

requirepass "xxxxxxxx"
protected-mode yes

两个设置项,

必须要有绑定IP设置 bind 172.28.18.XXX ,否则集群配置会连接不了节点而失败。

2、执行如下命令

redis-trib.rb create --replicas 1 172.28.18.75:25701 172.28.18.103:25701 172.28.18.104:25701 172.28.18.103:25702 172.28.18.104:25702 172.28.18.75:25702

redis-trib.rb create --replicas 1 主节点1 主节点2  主节点3 从节点1 从节点2 从节点3

继续yes

槽数据分配完毕,主从设置完毕,集群启动完毕

九、查看节点信息

在172.28.18.75上执行

redis-cli -h 172.28.18.75 -p 25701 cluster nodes

显示3主3从

十、查看集群信息

在172.28.18.75上执行

redis-cli -h 172.28.18.75 -p 25701 cluster info

分配了16384个槽,已知6个节点。

十一、客户端连接验证

redis-cli -c -h 172.28.18.75 -p 25701

-c 参数表示连接到集群

插入一个key,被分配到104节点上了,集群正常工作。

十二、java jedis连接集群

public class RedisClusterTest {
private static Logger logger=LoggerFactory.getLogger(RedisClusterTest.class); public static void main(String[] args) throws InterruptedException{
JedisCluster jedis;
//添加集群的服务节点Set集合
Set<HostAndPort> hostAndPortsSet =new HashSet<HostAndPort>();
//添加集群节点信息
hostAndPortsSet.add(new HostAndPort("172.28.18.75",25701));
hostAndPortsSet.add(new HostAndPort("172.28.18.103",25701));
hostAndPortsSet.add(new HostAndPort("172.28.18.104",25701)); //连接池配置
JedisPoolConfig config = new JedisPoolConfig();
//最大连接数, 默认8个
config.setMaxTotal(500);
//最大空闲连接数, 默认8个
config.setMaxIdle(100);
//最小空闲连接数, 默认0
config.setMinIdle(0);
//获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
config.setMaxWaitMillis(2000); // 设置2秒
//对拿到的connection进行validateObject校验
config.setTestOnBorrow(true);
jedis=new JedisCluster(hostAndPortsSet,config);
System.out.println("===========增加数据===========");
System.out.println(jedis.set("key1","value1"));
System.out.println(jedis.set("key2","value2"));
System.out.println(jedis.set("key3", "value3"));
System.out.println("获取键key2:"+jedis.get("key2"));
System.out.println("获取key1的值:"+jedis.get("key1"));
System.out.println("key3的值:"+jedis.get("key3")); }
}

linux下redis4.0.2集群部署(利用Ruby脚本命令)的更多相关文章

  1. linux下redis4.0.2集群部署(利用原生命令)

    一.部署架构如下 每台服务器准备2个节点,一主一从,主节点为另外两台其中一台的主,从节点为另外两台其中一台的从. 二.准备6个节点配置文件 在172.28.18.75上操作 cd /etc/redis ...

  2. linux下redis4.0.2安装与部署

    一.redis的介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更 ...

  3. Linux下搭建Lotus Domino集群

    Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...

  4. Linux下MySQL/MariaDB Galera集群搭建过程【转】

    MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...

  5. Linux下Hadoop2.7.3集群环境的搭建

    Linux下Hadoop2.7.3集群环境的搭建 本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安 ...

  6. hbase-2.0.4集群部署

    hbase-2.0.4集群部署 1. 集群节点规划: rzx1 HMaster,HRegionServer rzx2 HRegionServer rzx3 HRegionServer 前提:搭建好ha ...

  7. redis4.0.1集群安装部署

    安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...

  8. Redis-4.0.11集群配置

    版本:redis-3.0.5 redis-3.2.0  redis-3.2.9  redis-4.0.11 参考:http://redis.io/topics/cluster-tutorial. 集群 ...

  9. redis-5.0.5 集群部署

    之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...

随机推荐

  1. OpenCV实现彩色图像轮廓 换背景颜色

    转摘请注明:https://i.cnblogs.com/EditPosts.aspx?opt=1 有时候我们需要不一样颜色的证件照,下面就用OpenCV来实现证件照的蓝底.红底等换颜色: 代码如下: ...

  2. CCF-模板生成系统-201509-3

    主要是string---STL的运用 趁机整理一下erase, find, substr, replace, insert #include <bits/stdc++.h> using n ...

  3. Codeforces1062D. Fun with Integers(埃氏筛)

    题目链接:传送门 题目: D. Fun with Integers time limit per test seconds memory limit per test megabytes input ...

  4. MySQL 5.7以上 root用户默认密码问题【转】

    https://www.yanning.wang/archives/379.html 废话少说一句话系列: CentOS系统用yum安装MySQL的朋友,请使用 grep "temporar ...

  5. mysql与mysqli的区别

    博客搬家了,欢迎大家关注,https://bobjin.com mysqli连接是永久连接,而MySQL是非永久连接. mysql连接:每当第二次使用的时候,都会重新打开一个新的进程. mysqli连 ...

  6. win7共享打印机如何设置,xp系统如何连接共享打印机。

    一.xp如何连接win7共享打印机——连接win7共享打印机出现“禁用当前的账户”怎么办   保证xp和win7在同一局域网内.然后在xp电脑中打开[运行],输入win7电脑的ip地址.比如,我的办公 ...

  7. NumPy-快速处理数据--ndarray对象--数组的创建和存取

    本文摘自<用Python做科学计算>,版权归原作者所有. NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了 ...

  8. 关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP

    关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP 首先需要注意此处寄存器数量的配置,它决定了slv_reg的个数. 读写数据,即是对寄存器slv_reg进行操作: 关于AXI ...

  9. 前端-JavaScript1-3——JavaScript之字面量

    字面量?????? 字面量:英语叫做literals,有些书上叫做直接量.看见什么,它就是什么. 我们先来学习数字的字面量,和字符串的字面量.剩余的字面量类型,我们日后遇见再介绍. 3.1 数字的字面 ...

  10. Faster R-CNN代码例子

    主要参考文章:1,从编程实现角度学习Faster R-CNN(附极简实现) 经常是做到一半发现收敛情况不理想,然后又回去看看这篇文章的细节. 另外两篇: 2,Faster R-CNN学习总结      ...