首页 > 数据库 >redis集群搭建 - cluster模式

redis集群搭建 - cluster模式

时间:2024-11-12 20:32:06浏览次数:1  
标签:6379 redis 192.168 cluster 集群 6380

概述

搭建一套redis cluster集群。



架构

192.168.0.21:6379 主 192.168.0.23:6380 从
192.168.0.22:6379 主 192.168.0.21:6380 从
192.168.0.23:6379 主 192.168.0.22:6380 从

修改这三台服务器的host文件(选做)

vim /etc/hosts
192.168.0.21 node1
192.168.0.22 node2
192.168.0.23 node3

安装步骤

1. 安装gcc环境1. 安装gcc环境
yum install gcc-c++ --nogpgcheck
2. 进入解压目录编译,安装
make
# 指定了安装目录
make instal PREFIX=/usr/local/redis
3. 进入安装目录,创建文件夹
cd /usr/local/redis
mkdir -p redis_63{79,80}/{conf,pid,logs}
4.编辑conf文件
# 绑定端口,需要修改
port 6380

# pid文件存储位置,文件名需要修改
pidfile /usr/local/redis/redis_6380/pid/redis_6380.pid

# log文件存储位置,文件名需要修改
logfile /usr/local/redis/redis_6380/logs/redis_6380.log

# RDB快照备份文件名,文件名需要修改
dbfilename redis_6380.rdb

# 本地数据库存储目录,需要修改
dir /usr/local/redis/redis_6380

# 生成的集群节点配置文件名,文件名需要修改
cluster-config-file nodes_6380.conf


# 保护模式:关闭
protected-mode no
# ip限制:不限制(不推荐用bind来限制ip,应该用防火墙限制)
bind 0.0.0.0
# 密码
requirepass 123456
# 主节点密码
masterauth 123456

# 守护进行模式启动
daemonize yes

# 设置数据库数量,默认数据库为0
databases 16

# 集群相关配置
# 是否以集群模式启动
cluster-enabled yes

# 集群节点回应最长时间,超过该时间被认为下线
cluster-node-timeout 15000
5. 启动服务
cd /usr/local/redis/bin
./redis-server /usr/local/redis/redis_6379/conf/redis.conf
./redis-server /usr/local/redis/redis_6380/conf/redis.conf

image

6. 注册集群节点
./redis-cli -h 192.168.0.21 -p 6379 -a 123456
cluster meet 192.168.0.21 6380
cluster meet 192.168.0.22 6379
cluster meet 192.168.0.22 6380
cluster meet 192.168.0.23 6379
cluster meet 192.168.0.23 6380

image

7. 注册主从关系
./redis-cli -h 192.168.0.21 -p 6380 -a 123456
cluster replicate #{node-id}
./redis-cli -h 192.168.0.22 -p 6380 -a 123456
cluster replicate #{node-id}
./redis-cli -h 192.168.0.23 -p 6380 -a 123456
cluster replicate #{node-id}

image

8. 分配槽位 - 在主节点分
./redis-cli -h node1 -p 6379 -a 123456 cluster addslots {0..5461}
./redis-cli -h node2 -p 6379 -a 123456 cluster addslots {5462..10922}
./redis-cli -h node3 -p 6379 -a 123456 cluster addslots {10923..16383}

image

验证

node3:6379 为主,node2:6380为从
node3:6379下线,node2:6380预期变成主
node3:6379故障恢复后,变成从节点

image
./redis-cli -h node3 -p 6379 -a 123456 shutdown # 停掉node3:6379
image
./redis-server /usr/local/redis/redis_6379/conf/redis.conf # 重新上线node3:6379
image

redis cluster相关命令

1. MOVED重定向 与 -c参数

重定向:key1槽位在node2上,正常登录node1,在node1set 会得到提示: 重定向到node2去操作。
image

-c :登录的时候带上-c参数,无论是否是集群模式,会自动帮我们进行重定向。
image

2. cluster命令

我就用了俩:cluster info 和cluster nodes, 其他的用的时候查吧

命令 描述
INFO 返回当前集群信息
MEET [] 添加一个节点至当前集群
MYID 返回当前节点集群ID
NODES 返回当前节点的集群信息
REPLICATE 将当前节点作为某一集群节点的从库
FAILOVER [FORCE
RESET [HARD
ADDSLOTS [ ...] 为当前集群节点增加一个或多个插槽位,推荐在bash shell中执行,可通过{int..int}指定多个插槽位
DELSLOTS [ ...] 为当前集群节点删除一个或多个插槽位,推荐在bash shell中执行,可通过{int..int}指定多个插槽位
FLUSHSLOTS 删除当前节点中所有的插槽信息
FORGET 从集群中删除某一节点
COUNT -FAILURE-REPORTS 返回当前集群节点的故障报告数量
COUNTKEYSINSLOT 返回某一插槽中的键的数量
GETKEYSINSLOT 返回当前节点存储在插槽中的key名称。
KEYSLOT 返回该key的哈希槽位
SAVECONFIG 保存当前集群配置,进行落盘操作
SLOTS 返回该插槽的信息

参考资料

https://www.cnblogs.com/Yunya-Cnblogs/p/14608937.html

标签:6379,redis,192.168,cluster,集群,6380
From: https://www.cnblogs.com/krcc/p/18542557

相关文章

  • mongos 分片集群
    1、先配置配置服务器,113-114两个集群,端口27018,配置文件/etc/mongod27018.conf,服务mongod27018.servicemongo--host127.0.0.1--port27018useadmindb.auth('root','password')rs.stauts()2、配置分片服务器113-1186个分片,每个分片又是一个单独的集群模式,端口27017......
  • ElasticSearch 7.14 向已启用XPACK认证的集群增加新的节点
    一、环境现状描述:     目前的ElasticSearch集群仅有一个单一节点,且这个集群中已建立有索引,索引已包含业务文档数据(超过200G),该集群已经启用XPACK认证,现希望扩展这个集群,增加复制节点,且复制节点启动后,自动从主节点同步数据到新节点。     目前的ElasticSearch集群节点......
  • Docker使用docker-compose一键部署nacos、Mysql、redis
    下面是一个简单的例子,展示如何通过DockerCompose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和DockerCompose。1,准备好mysql、redis、nacos镜像sudodockerpullmysql:8&&sudodockerpullredis:7.2&&sudodockerpullnacos/nacos-server:v2.4.......
  • 1.redis常见数据类型-列表List
     列表类型-list①.列表list是一个单键多值的Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差②.常用命令插入、删除、获......
  • 如何使用Redis进行缓存管理?
    使用Redis进行缓存管理时,需要考虑以下几个方面:选择合适的缓存策略:常见的缓存策略包括FIFO(先进先出)、LRU(最近最少使用)和LFU(最近最不常使用)等。此外,还有CacheAside(旁路缓存)、Read/WriteThrough(读写穿透)和WriteBehindCaching(异步缓存写入)等模式。缓存读写策略:Redis支持多......
  • Redis知识分享(一)
    目录前言一、Redis是什么?二、安装redis三、Redis的对象类型和对象编码3.1对象类型3.2对象编码3.3.对象类型和编码对应关系四、各类型的指令4.1.string类型常用命令4.2.list类型常用命令4.3.set类型常用指令4.4.zset类型常用指令4.5.hash类型常用指令前言今天......
  • Quartz集群增强版_00.How to use?(如何使用)
    Quartz集群增强版_00.Howtouse?(如何使用)转载请著名出处https://www.cnblogs.com/funnyzpc/p/18540378开源地址https://github.com/funnyzpc/quartz表的基本结构    总的来说任务的配置及开发基本遵从上图的表的基本关系,除app以及node之外均需要手动手动配置......
  • 企业生产环境-麒麟V10(ARM架构)操作系统部署Zookeeper单节点&高可用集群版
    前言:ZooKeeper是一个分布式协调服务,它为分布式应用提供一致性服务,是ApacheHadoop的子项目。它被设计为易于编程,同时具有高性能和高可靠性。ZooKeeper提供了一个简单的接口和一些基本的文件系统操作,使得开发者能够快速地构建分布式应用。以下是ZooKeeper的一些关键特性和概念:......
  • Docker Redis Sentinel 高可用集群搭建指南
    DockerRedisSentinel高可用集群搭建指南前提条件:已安装Docker和docker-compose。配置了镜像源加速,确保能够正常拉取镜像。一、手动搭建DockerRedisSentinel1.拉取Redis镜像dockerpullredis2.Redis集群IP和端口设置(单机测试)主节点:ip:6379从节点:i......
  • redisson内存泄漏问题排查
    问题描述最近生产有个服务突然出现频繁告警,接口P99响应时间变长,运维同学观察到相应的podcpu飙升,内存占用很高。cpu升高问题排查是老生常谈的话题了,一般可以使用top-ppid-H查看是哪个线程占用cpu高,再结合jstack找到对应的java线程代码。不过经验告诉我们,cpu升高还有另外一......