在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、原生命令方式和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 [email protected]:/etc/redis/ scp -P25601 redis-25702.conf [email protected]:/etc/redis/ scp -P25601 redis-25701.conf [email protected]:/etc/redis/ scp -P25601 redis-25702.conf [email protected]:/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.gem1、下载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" 两个设置项, 必须要有绑定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")); } }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论