redis 从5开始 可以直接用redis-cli命令创建集群了,不用那么麻烦 安装ruby环境

redis配置文件需要修改的地方

port 7000
cluster-enabled yes
cluster-config-file nodes.7000.conf
cluster-node-timeout 5000
appendonly yes

  

mkdir /usr/local/cluster

cd /usr/local/cluster/

cd cluster/

mkdir 7000 7001 7002 7003 7004 7005

cd 7000/

cp /www/server/redis/redis.conf ./

vim redis.conf   修改一个配置 然后复制到其他目录

cp redis.conf ../7001/
cp redis.conf ../7002/
cp redis.conf ../7003/
cp redis.conf ../7004/
cp redis.conf ../7005/
vim ../7001/redis.conf
vim ../7002/redis.conf
vim ../7003/redis.conf
vim ../7004/redis.conf
vim ../7005/redis.conf

替换各自端口为其他的  vim 下 :%s/7000/7001/s

vim start.sh  一个个启动太麻烦,脚本一次性启动

#!/bin/bash

/www/server/redis/src/redis-server /usr/local/cluster/7000/redis.conf
/www/server/redis/src/redis-server /usr/local/cluster/7001/redis.conf
/www/server/redis/src/redis-server /usr/local/cluster/7002/redis.conf
/www/server/redis/src/redis-server /usr/local/cluster/7003/redis.conf
/www/server/redis/src/redis-server /usr/local/cluster/7004/redis.conf
/www/server/redis/src/redis-server /usr/local/cluster/7005/redis.conf

chmod +x start.sh

./start.sh

ps -ef|grep redis

[root@localhost cluster]# ps -ef|grep redis
root 10279 1 0 11:46 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7000 [cluster]
root 10340 1 0 11:47 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7001 [cluster]
root 10346 1 0 11:47 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7002 [cluster]
root 10352 1 0 11:47 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7003 [cluster]
root 10358 1 0 11:47 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7004 [cluster]
root 10364 1 0 11:47 ? 00:00:01 /www/server/redis/src/redis-server 0.0.0.0:7005 [cluster]
root 10945 21050 0 11:58 pts/2 00:00:00 grep --color=auto redis
[root@localhost cluster]#

  

启动集群

redis-cli --cluster create 192.168.33.60:7000 192.168.33.60:7001 192.168.33.60:7002 192.168.33.60:7003 192.168.33.60:7004 192.168.33.60:7005 --cluster-replicas 1

root@localhost cluster]# redis-cli --cluster create 192.168.33.60:7000 192.168.33.60:7001 192.168.33.60:7002 192.168.33.60:7003 192.168.33.60:7004 192.168.33.60:7005 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.33.60:7004 to 192.168.33.60:7000
Adding replica 192.168.33.60:7005 to 192.168.33.60:7001
Adding replica 192.168.33.60:7003 to 192.168.33.60:7002
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 22df8c4f2763a3d40c5533893333608df1e0b792 192.168.33.60:7000
slots:[0-5460] (5461 slots) master
M: 4bdf950bbcaa37ff8aa159894c169b4c9fa0b056 192.168.33.60:7001
slots:[5461-10922] (5462 slots) master
M: 93a97e0e58375b38ff4639de2e597e1adb675b83 192.168.33.60:7002
slots:[10923-16383] (5461 slots) master
S: f68d2dde12b03b84251d69006d845cdfeaeaeb88 192.168.33.60:7003
replicates 93a97e0e58375b38ff4639de2e597e1adb675b83
S: 6e2feeb4ee991d69adae953d47932291bb174445 192.168.33.60:7004
replicates 22df8c4f2763a3d40c5533893333608df1e0b792
S: c0c7a26a69b09cad5d78e78c8d0c7eb327fbf8f5 192.168.33.60:7005
replicates 4bdf950bbcaa37ff8aa159894c169b4c9fa0b056
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.33.60:7000)
M: 22df8c4f2763a3d40c5533893333608df1e0b792 192.168.33.60:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
S: f68d2dde12b03b84251d69006d845cdfeaeaeb88 192.168.33.60:7003
slots: (0 slots) slave
replicates 93a97e0e58375b38ff4639de2e597e1adb675b83
S: 6e2feeb4ee991d69adae953d47932291bb174445 192.168.33.60:7004
slots: (0 slots) slave
replicates 22df8c4f2763a3d40c5533893333608df1e0b792
S: c0c7a26a69b09cad5d78e78c8d0c7eb327fbf8f5 192.168.33.60:7005
slots: (0 slots) slave
replicates 4bdf950bbcaa37ff8aa159894c169b4c9fa0b056
M: 93a97e0e58375b38ff4639de2e597e1adb675b83 192.168.33.60:7002
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
M: 4bdf950bbcaa37ff8aa159894c169b4c9fa0b056 192.168.33.60:7001
slots:[5461-10922] (5462 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.
[root@localhost cluster]#

  

查看集群状态

redis-cli -h 127.0.0.1 -c -p 7000 info replication

redis-cli -h 127.0.0.1 -c -p 7001 info replication

redis-cli -h 127.0.0.1 -c -p 7002 info replication

redis-cli -h 127.0.0.1 -c -p 7003 info replication

redis-cli -h 127.0.0.1 -c -p 7004 info replication

redis-cli -h 127.0.0.1 -c -p 7005 info replication

[root@localhost logs]# redis-cli -h 127.0.0.1 -c -p 7002 info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.33.60,port=7003,state=online,offset=1344,lag=0
master_replid:f1b66456b6204b293b39702faea1dee558929070
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1344
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1344

  

结果 0 1 2 为主 3 4 5 为从

现在kill掉0 试试

kill之前我看了 4是从

[root@localhost logs]# redis-cli -h 127.0.0.1 -c -p 7004 info replication
# Replication
role:slave
master_host:192.168.33.60
master_port:7000
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:1330
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:4d2c448c8477544dccfa20b248ce37351a725293
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1330
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1330

  

kill之后 在看 4变成主了

[root@localhost logs]# redis-cli -h 127.0.0.1 -c -p 7004 info replication
# Replication
role:master
connected_slaves:0
master_replid:ddf63dedae765e3612002687217d63b20c7356ab
master_replid2:4d2c448c8477544dccfa20b248ce37351a725293
master_repl_offset:1470
second_repl_offset:1471
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1470

设置值 连接7001

127.0.0.1:7003> set name wang
-> Redirected to slot [5798] located at 192.168.33.60:7001
OK
192.168.33.60:7001>

7002上get

127.0.0.1:7002> get name
-> Redirected to slot [5798] located at 192.168.33.60:7001
"wang"
192.168.33.60:7001>

https://www.jianshu.com/p/a1e62e78667c

https://segmentfault.com/a/1190000017151802

redis集群搭建 不用ruby的更多相关文章

  1. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  2. 分享知识-快乐自己:redis集群搭建

    Redis介绍: 1.开源的NoSql数据库 2.C语言编写 3.基于内存运行,并且支持持久化 4.Key value存储 5.是主流的Nosql数据库之一 Redis优点: 1.内存使用方面,表现优 ...

  3. redis集群搭建(简单简单)一台机器多redis

      redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件: 进入到解压缩后的redis文件目录(此时可以看到Makef ...

  4. 新手redis集群搭建

    redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件:进入到解压缩后的redis文件目录(此时可以看到Makefile文 ...

  5. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  6. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  7. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  8. redis集群搭建及注意事项

    上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...

  9. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

随机推荐

  1. JWT伪造攻击

    JWT修改伪造攻击 什么是JWT? JSON Web Token(JSON Web令牌)是一种跨域验证身份的方案.JWT不加密传输的数据,但能够通过数字签名来验证数据未被篡改(但是做完下面的WebGo ...

  2. MySQL的事务机制和锁(InnoDB引擎、MVCC多版本并发控制技术)

    一.事务(数据库的事务都通用的定义) 1.1 事务定义 事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.事务通常以 BEGIN TRANSACTION 开始 ...

  3. C语言汇总3

    16-18 1.常量 整型常量:1: 2: 3: 实型常量(小数):单精度常量[3.14],双精度常量(默认情况下)[10.1f] 字符型常量 ' 5 ',只要在双引号的任意的唯一一个字符就为字符型常 ...

  4. maven问题汇总

    Failed to read artifact descriptor for xxx:jar 在MyEclipse中执行Maven的install命令时,报“Failed to read artifa ...

  5. Django request

    ''' 1.HttpRequest.GET 一个类似于字典的对象,包含 HTTP GET 的所有参数.详情请参考 QueryDict 对象. 2.HttpRequest.POST 一个类似于字典的对象 ...

  6. element-ui upload上传文件并携带参数 使用formData对象

    需求:上传文件的时候,需要携带其他的参数 问题:使用upload上传文件时,必须使用formData对象,而其他的参数通过data获取的到的,formData和data是不能同时传输的 解决:获取到的 ...

  7. Element-UI:级联选择器:Cannot read property 'level' of null"

    当级联选择时如果其选择内容需要动态变化时,如果没有选择就不会报错的:而当做出选择后又要动态变化级联选择器内容时,就会报错/ 错误:这个错误的原因是当选择后,再更新内容时,选择器仍会关联原来的数据,导致 ...

  8. HotSpot VM执行引擎的实现

    Java代码的执行分类: 第一种是将源代码编译成字节码文件,然后再运行时通过解释器将字节码文件转为机器码执行 第二种是编译执行(直接编译成机器码).现代虚拟机为了提高执行效率,会使用即时编译技术(JI ...

  9. uni-app开发注意事项

    关于vue 1.注意 如果使用老版的非自定义组件模式,即manifest中"usingComponents":false,部分模版语法不支持,但此模式已于2019年11月起下线. ...

  10. 破壳漏洞(CVE-2014-6271)分析

    受影响版本:GNU Bash 4.3及之前版本 影响范围:主流的Linux和MacOSX操作系统,与bash交互的各种应用程序,如HTTP,FTP,DHCP等等. 漏洞原理及POC验证: 1.bash ...