一、安装redis

1. 安装

brew install redis

2. 启动

redis-server:启动 redis 服务器,默认端口 6379

redis-cli:启动 redis 客户端

配置文件目录

cd /usr/local/etc

二、配置集群

在配置文件目录(/usr/local/etc)下进行操作

1. 创建虚拟节点目录

在 /usr/local/etc 下创建 redisCluster 目录,并在 redisCluster 目录下创建目录:7000、7001、7002、7003、7004、7005。

mkdir redisClustercd redisClustermkdir 7000 7001 7002 7003 7004 7005

2.修改配置文件

把redis的配置文件复制到每个文件夹下,并修改文件。可以先复制一份修改好参数再复制其他的,只要修改port就可以了,参数修改如下

# 端口号,每个目录都不同

port 7000

# 开启集群模式

cluster-enabled yes

#节点超时实际,单位毫秒

cluster-node-timeout 5000

#集群内部配置文件(默认为 nodes-6379.conf)

cluster-config-file nodes-7000.conf

# 启动 AOF

appendonly yes

# 默认是no,改成 yes,意思是是否要后台启动。

daemonize yes

复制配置文件

cp ../redis.conf.default ./7000vim ./7000/redis.conf.defaultmv ./7000/redis.conf.default ./7000/7000.conf

记得修改配置文件中的port参数和文件夹一致

3.启动redis并验证各节点运行

redis-server /usr/local/etc/redisCluster/7000/7000.confps -ef|grep redis

4. 关联所有节点

redis-cli -p 7000
cluster meet 127.0.0.1 7001

5.分配槽位

Cluster 默认会对 key 值使用 crc32 算法进行 hash 得到一个整数值,然后用这个整数值对 16384 进行取模来得到具体槽位

在分配槽位时,相当于把对应的槽位挂载在指定的节点上, key计算出来的槽位,然后跟据槽位找到对应的节点,将key存储在这个节点上.

若set sgfoot www.sgfoot.com, 集群计算出对应的槽位是: 6498, 而6498槽位被挂载在127.0.0.1:6392节点上, 不归自己管, 所以会返回一个信息-> Redirected to slot [6498] located at 127.0.0.1:6392 让你去连接6392节点上查看,你刚才存储的值.

查看帮助: cluster help

槽位分配错误使用:cluster reset

分配槽位, 注意只能使用redis-cli方式, 槽位之间是两个小点

如果报(error) ERR Slot 5462 is already busy 错误的话, 先查看cluster nodes, 排查问题, 实在不行,使用cluster reset重置操作. 重新握手操作.然后再分配槽位.

redis Cluster 是由 16384 个 slot 组成的,那么我们需要将这些槽分散到这其中 3 个节点里(3 主 3 从)。

redis-cli -p 7000 cluster addslots {0..5461}
redis-cli -p 7001 cluster addslots {5462..10922}
redis-cli -p 7002 cluster addslots {10923..16383}

此时节点已经分配好了。通过以下命令验证:

redis-cli -p 7000 cluster nodes

前面的一串 16 进制字符串,其实就是后面对应进程节点的NodeId

主节点已经有了 slot,那么最后一步就是将主节点和从节点进行关联,形成主从复制的关系。 命令如下:

注意:需要在从节点的 cli 命令窗口关联主节点。不能反着来。

redis-cli -p 7003 cluster replicate 7000的NodeID
redis-cli -p 7004 cluster replicate 7001的NodeID
redis-cli -p 7005 cluster replicate 7002的NodeID

这个NodeID其实就是执行 redis-cli -p 7000 cluster nodes

查看结果:

redis-cli -p 7000 cluster nodes

6. 测试使用

这时如果继续使用之前的redis-cli -p 7000命令会报错:

应使用集群模式:

redis-cli -c -p 7000

其他redis连接查看:

至此完成。

mac搭建redis集群相关推荐

  1. 理解并从头搭建redis集群

    部分开发人员工作当中只是在应用中使用redis,比如用来做数据结果的缓存.而且现在有很多不错的redis客户端工具(redisson),基本上可以不用关注redis命令就可以完成相当部分的功能.所以可 ...

  2. [转]redis 5.0.5 5分钟搭建redis集群

    环境:centos 7 1:下载并安装redis ​​​​​​​$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz$ tar xzf ...

  3. redis集群关闭 启动报错_使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能。...

    实操题目:使用虚拟机搭建 Redis 集群,实现数据库的负载均衡功能.并使用图文描述整个过程.先创建集群: ①创建集群需要使用ruby脚本,所以要先安装ruby环境 安装ruby环境:yum inst ...

  4. 在windows上搭建redis集群(主从复制)

    Redis集群策略主要有: 主从复制 哨兵模式 (在windows上搭建redis集群(Redis-Sentinel)) 集群 (在windows上搭建redis集群(Redis-Cluster)) ...

  5. 在windows上搭建redis集群(Redis-Sentinel)

    Redis集群策略主要有: 哨兵模式 主从复制(在windows上搭建redis集群(主从复制)) 集群 (在windows上搭建redis集群(Redis-Cluster)) 分片 本文主要讲解如何 ...

  6. 在windows上搭建redis集群(Redis-Cluster)

    Redis集群策略主要有: 集群 主从复制(在windows上搭建redis集群(主从复制)) 哨兵模式 (在windows上搭建redis集群(Redis-Sentinel)) 分片 本文主要讲解如 ...

  7. 手把手带你搭建redis集群

    redis-cluster是redis官方提供的分布式数据库解决方案,集群通过分片进行数据共享,并提供复制和故障转移功能. redis集群主要分为主节点和从节点.主节点用于处理槽,而从节点用于复制某个 ...

  8. docker搭建redis集群

    #!/bin/bash #Author: 臆想的一只猫 #Created: 2022-04-06 17:42:33 #Description: 搭建redis集群function menu() {cl ...

  9. 搭建redis集群-(伪分布式)

    安装redis #关闭防火墙并且安装iptables(防火墙) 并在防火墙中添加规则,也可以用firewalld.service 防火墙 #如果是用firewalld.service 的防火墙的话下面 ...

最新文章

  1. 检测单选按钮的值发生变化的事件
  2. 2017-2018互联网类脑巨系统研究报告,互联网大脑、城市云脑和AI
  3. 连续低频脑电图解码手臂运动,实现机械手臂的闭环自然控制
  4. 【组合数学】非降路径问题 ( 限制条件的非降路径数 )
  5. [core]-ARM A76学习笔记
  6. 微信营销这么做,你就成功了 转载
  7. 每日一题(51)—— 大小端判断
  8. 用好pypi,提高开发速度
  9. 第 14 章 垃圾回收概述
  10. ubuntu之安装sublime text
  11. uva 11991 - Easy Problem from Rujia Liu?(STL)
  12. javac编译java_使用javac编译java文件
  13. VSCode Latex Workshop 设置 XeLatex 编译
  14. Windows安全加固
  15. BliBli抢楼全攻略
  16. 12306网站专家:拟采取办法应对抢票软件
  17. 《Java170道面试笔试题全面含答案》
  18. 为什么要背诵新概念英语?
  19. java 处理物料清单_ERP之物料清单(BOM)
  20. 论文阅读(3):Image-Based 3D Object Reconstruction:State-of-the-Art and Trends in the Deep Learning Era

热门文章

  1. 周志华《Machine Learning》学习笔记(13)--特征选择与稀疏学习
  2. 005-云E办_学习JWT
  3. 乞讨行业也需要做策划!真是太牛了!
  4. 云服务器和本地服务器的区别在哪?这些区别令人心动
  5. 变量究竟是存在寄存器还是堆栈?
  6. 荒岛求生java游戏,荒岛求生手机版
  7. Python selenium 使用cookie跳过验证码
  8. 【材料力学】深度研讨|挠度刚度部分(2)
  9. 【晶振专题】案例:晶振供应商提供的晶振匹配测试报告能看出什么?
  10. 分布式session