redis主从配置+集群搭建

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: redis主从配置+集群搭建

为什么需要主从配置?????

当出现高并发流量情况 如果我们只有一个redis服务器  挂掉之后  网站的运营会出现问题.

我们可以多弄几台redis服务器,使得一台服务器挂掉自动切换到另一台redis服务器,这个时候就实现了一个高可用的系统

主从配置 环境是2台 ubuntu server 18.04  虚拟机

首先安装redis-server

sudo apt-get update  
sudo apt-get install redis-server
  • 主库配置. 修改配置文件
vim /etc/redis/redis.conf
# bind 127.0.0.1 ::1   注释掉这个外链地址 允许外部连接麻   不然从库怎么去连接呢  对吧
  • 从库配置(也需要安装redis)也就是另一台服务器
修改配置文件
vim /etc/redis/redis.conf
# slaveof 主库ip 主库端口号  把这行注释打开  
配置完成都需要去重启服务
  • 主库查看

配置完成之后就需要去查看是否配置成功了,然后去主库服务器上使用redis-cli 连接


输入 info命令查看

有一个 Replication

connected_slaves:1   为一就说明有了一个重库   好吧 因为比较简单 所以不做详细说明

手动搭建redis集群

  • 集群搭建一般需要的服务器比较多   redis最少需要6台   3主3从  我如果开这么多虚拟机我电脑可能炸掉 所以我直接在一台虚拟机上面搭建6个redis
  • 使用不同的端口号  redis版本使用的是4.0
  • 安装redis

在官网找到redis的包   使用wget获取资源 然后解压 因为官方提供了makefile 所以比较方便  直接make就可以了 编译好的会出现在src目录里面

  • 如果是一台新的机器 可能一些依赖都是需要我们自己手动去安装  apt-get install gcc g++ make 对吧  随后就可以为所欲为

为了方便  我直接把我们需要用到的一些东西直接拷贝到了我的家目录

cp ./src/redis-server /home/test/redis-cluster/
cp ./src/redis-cli /home/test/redis-cluster/
cp ./src/redis-trib.rb /home/test/redis-cluster/

拷贝过去后  然后我去redis-cluster里面创建6个文件夹  每个存放一个redis服务

mkdir 7000 7001 7002 7003 7004 7005

给每一个文件夹都设置他们的配置文件

redis.conf (内容如下)
port 7000  这是端口                  //你希望是啥就是啥
cluster-enabled yes                 //开启集群模式
cluster-config-file nodes.conf      //集群的配置  配置文件首次启动自动生成 
cluster-node-timeout 5000           //请求超时
appendonly yes                      //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
  • 然后分别去每个目录下启动每个服务

../redis-server ./redis.conf   这样启动会发现  如果我们将终端关闭  这个redis也就关闭 所以我们使用nohub命令去后台运行

nohup ../redis-server ./redis.conf &   启动完6个redis

  • 随后我们需要创建集群

使用redis-trib.rb 来创建

因为是ruby编写的   所以需要先安装一个redis   顺便安装一个rubyredis    gem install redis

  • 使用命令

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

这里使用的命令是create,因为我们要创建一个新的集群。该选项--cluster-replicas 1意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。

显然,我们要求的唯一设置是创建一个包含3个主服务器和3个从服务器的集群。

Redis-cli将为您提供配置。键入yes接受建议的配置。将配置并加入群集,这意味着实例将被引导为彼此通信。最后,如果一切顺利,你会看到这样的消息:

[OK] All 16384 slots covered  这意味着至少有一个主实例为16384个可用插槽提供服务。

然后使用 redis-cli -c -p 7000  连接redis  (-c 代表集群模式)

set name test

然后切换别的redis服务  去get 获取成功

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
127 0
|
17天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
28天前
|
存储 NoSQL Redis
Redis 配置
10月更文挑战第14天
24 1
|
1月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
56 1
|
1月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
129 0
|
1月前
|
NoSQL Ubuntu Linux
redis的基本安装配置启动使用
redis的基本安装配置启动使用
34 0
|
1月前
|
缓存 NoSQL 数据处理
原生php实现redis缓存配置和使用方法
通过上述步骤,你可以在PHP项目中配置并使用Redis作为高性能的缓存解决方案。合理利用Redis的各种数据结构和特性,可以有效提升应用的响应速度和数据处理效率。记得在实际应用中根据具体需求选择合适的缓存策略,如设置合理的过期时间,以避免内存过度消耗。
50 0
|
3月前
|
NoSQL Redis 容器
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
|
3月前
|
缓存 NoSQL 测试技术
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
【Azure Redis 缓存】Azure Redis 功能性讨论三: 调优参数配置
|
3月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢?
【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢?