官方教程:https://redis.io/docs/management/scaling/

其他参考:

https://note.youdao.com/ynoteshare/index.html?id=174eaa7104ce961f8012d521d8155bd9&type=note&_time=1640409730693?auto

https://www.cnblogs.com/paul8339/p/17285558.html#_label3

https://www.cnblogs.com/aquester/p/9891481.html

https://blog.csdn.net/u013411339/article/details/107502718

  • 集群最低要求:6台redis,实现3主3从。

每台redis需要修改配置项:

# 启用集群功能
cluster-enabled yes # 本台redis的集群配置信息保存文件名:
cluster-config-file nodes_xxxx.conf
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 \
127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 \
--cluster-replicas 1 redis-cli --cluster create 192.168.2.6:7000 192.168.2.6:7001 192.168.2.6:7002
--cluster-replicas 0

集群限制

由于Redis集群中数据分布在不同的节点上,因此有些功能会受限:

db库:单机的Redis默认有16个db数据库,但在集群模式下只有一个db0;

复制结构:上面的复制结构有树状结构,但在集群模式下只允许单层复制结构;

事务/lua脚本:仅允许操作的key在同一个节点上才可以在集群下使用事务或lua脚本;(使用Hash Tag可以解决)

key的批量操作:如mget,mset操作,只有当操作的key都在同一个节点上才可以执行;(使用Hash Tag可以解决)

keys/flushall:只会在该节点之上进行操作,不会对集群的其他节点进行操作;

Hash Tag:

上面介绍集群限制的时候,由于key被分布在不同的节点之上,因此无法跨节点做事务或lua脚本操作,但我们可以使用hash tag方式解决。

hash tag:当key包含{}的时候,不会对整个key做hash,只会对{}包含的部分做hash然后分配槽slot;因此我们可以让不同的key在同一个槽内,这样就可以解决key的批量操作和事务及lua脚本的限制了;

但由于hash tag会将不同的key分配在相同的slot中,如果使用不当,会造成数据分布不均的情况,需要注意。

redis集群搭建注意事项的更多相关文章

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

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

  2. 25.redis集群搭建笔记

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

  3. Redis 集群搭建详细指南

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

  4. 二、redis集群搭建

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

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

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

  6. [转载] Redis集群搭建最佳实践

    转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...

  7. Linux Redis集群搭建与集群客户端实现

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

  8. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

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

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

  10. Docker Swarm redis 集群搭建

    Docker Swarm redis 集群搭建 环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docke ...

随机推荐

  1. 利用RATF框架实现web状态的监控

    之前,我们已经说明了如何实现一个我们的接口测试框架RATF,当然这个框架不止可以用于管理我们的接口测试代码,我们还可以用他来对我们的web进行简单粗暴的监控. 原理: 1. 通过使用配置文件,对要监控 ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题

    四.用go语言,重写 ENQUEUE 和 DEQUEUE 的代码,使之能处理队列的下溢和上溢. 文心一言: 在 Go 语言中,我们可以使用切片来实现队列.下面是如何实现 ENQUEUE 和 DEQUE ...

  3. Python开发之Django框架

    一. Django框架 01.网络软件开发架构演变过程 02.HTTP协议讲解 03.web应用与框架介绍及手撸web框架 04.Django入门项目创建与必会三板斧 05.Django静态文件配置与 ...

  4. 使用Arduino制作摩尔斯电码收发器

    摩尔斯电码通过不同的排列顺序来表达不同的英文字母.数字和标点符号等.在今天,国际摩尔斯电码依然被使用着.比如,摩尔斯电码最广为人知的用法发送求救信号SOS,SOS信号的组合方式为:.再比如,假设我们通 ...

  5. Thinking in Java 4th Edition Source Code

    Thinking in Java 4th Edition Source Code Instructions for downloading, installing and testing the so ...

  6. Java面向对象编程的三大特性:封装、继承、多态。

    一.封装 封装的核心在于私有化(private),大部分情况下,来封装对象的属性,很少有封装方法的.通过将对象的属性封装,提供对外的公共方法来访问属性是最常见的方式. public static cl ...

  7. client-go实战之七:准备一个工程管理后续实战的代码

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<client-go实战> ...

  8. Html5学习内容-4

    (一)display与visibility 这里主要控制元素是否显示 例子 visibility:文字消失空间保留 <!DOCTYPE html> <html lang=" ...

  9. spring---面向切面(AOP @Pointcut 注解篇)

    2.1 第一个实例 接下来,我们先看一个极简的例子:所有的get请求被调用前在控制台输出一句"get请求的advice触发了". 具体实现如下: 1.创建一个AOP切面类,只要在类 ...

  10. [MDP.NetCore] 使用AzureAD+服務主體,快速建立兩個服務之間的Service身分認證

    MDP.AspNetCore.Authentication.AzureAD.Services for Service Principal MDP.AspNetCore.Authentication.A ...