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. 没有修改getModel()方法的返回值导致的Hibernate接收不到页面数据

    异常1.通过id进行查询,但id为null,就出现这个异常!java.lang.IllegalArgumentException: id to load is required for loading ...

  2. 什么是Lambda架构

    一.Lambda架构需求 Lambda架构背后的需求是由于MR架构的延迟问题.MR虽然实现了分布式.可扩展数据处理系统的目的,但是在处理数据时延迟比较严重.实际上如果内存和CPU足够强大,MR也可以实 ...

  3. [LeetCode]347. 前 K 个高频元素(堆)

    题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1 ...

  4. [ArcGIS]高程地图-把DEM栅格数据(.tif)转换为TIN矢量数据,并储存TIN数据。

    把DEM数据(.tif)获得栅格数据对应的经纬度及高程信息,存到地理数据库 一.预处理工作 栅格数据的合并--目的:将原始4张Dem(.tif)数据合并为一张Dem(.tif) https://wen ...

  5. Vue Render自定义tabled单元格内容

    解决问题 只举一个例子(我正好需要用到的) 在写中后台时, 如果对 表格组件 再度封装了, 比如这样的 以element-ui 为例: <template> <el-table :d ...

  6. pwnable.kr-cmd1-witeup

    执行分析程序,知过滤掉了flag.sh.tmp字段,但在linux下可通过通配符匹配文件哦. 哦对,参数输入的命令中,没有环境变量的支持,所有文件和命令必须用绝对路径哦.

  7. kmt字符串匹配

    # -*- coding:utf-8 -*-class StringPattern: def findAppearance(self, A, lena, B, lenb): pos=0 tmp = 0 ...

  8. 神作!阿里首发并发编程神仙笔记,Github已星标92K

    Qzone 微信 神作!阿里首发并发编程神仙笔记,Github已星标92K JAVA超神编程 2020-09-23 21:04:06 JVM 无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎 ...

  9. python 报错 wxPyDeprecationWarning: Using deprecated class PySimpleApp.

    如题:python 报错 提示为 : wxPyDeprecationWarning: Using deprecated class PySimpleApp. 解决:将 wx.PySimpleApp() ...

  10. 手把手撸套框架-Victory框架1.1 详解

    目录 上一篇博客 Victory框架1.0 详解  有说道,1.0的使用过程中出现不少缺点,比如菜单不能折叠,权限没有权限组等等. 所以,我还是抽出时间在下班后,回到我的小黑屋里 完成了1.1的升级. ...