Redis 部署选型方案

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis 部署选型方案==前言==项目即将使用Redis,本文对Redis的部署方案,进行选型分析。==一、部署方案介绍====1)、单机版==1-单机版.

Redis 部署选型方案


==前言==

  • 项目即将使用Redis,本文对Redis的部署方案,进行选型分析。

==一、部署方案介绍==

==1)、单机版==

img_2974ab49b788f4957987ff8bd7d188fb.jpe
1-单机版.jpg

单机版三个问题

  • 1、内存容量有限
  • 2、处理能力有限
  • 3、无法高可用
==2)、多机版==

img_86a663c099deadfd7eb40ea52e610937.jpe
2-多机版.jpg

特性

  • 1、复制(Replication)
  • 2、哨兵(Sentinel)
  • 3、集群(Cluster)

Redis多机版部署特性功能

  • 复制:扩展系统对于读的能力
  • 哨兵:为服务器提供高可用特性,减少故障停机出现
  • 集群:扩展内存容量,增加机器,提高性能读写能力和存储以及提高可用特性
==3)、复制==

Redis的复制(replication)功能允许用户根据一个Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品,则为从服务器(slave),master负责读写,slave一般只负责读。只要主从服务器之间的网络连接正常,主从服务器两者会具有相同的数据,主服务器就会一直将发生在自己身上的数据更新同步给从服务器,从而一直保证主从服务器的数据相同。

img_de7685327701cedb0c55c344e51ae0c8.jpe
3-复制.jpg

特点:

  • 1、master/slave 角色
  • 2、master/slave 数据相同
  • 3、降低master读的压力,在转交从库

问题:

  • 1、无法保证高可用
  • 2、没有解决master写的压力
4)、哨兵

Redis sentinel 是一个分布式系统中监控redis主从服务器,并在主服务器下线时自动进行故障转移,其中三个特性:

  • 监控(Monitoring):Sentinel 会不断的检查你的主服务器和从服务器是否运作正常。
  • 提醒(Notification):当被监控的某个Redis服务器出现问题时,Sentinel可以通过API向管理员或者其他应用程序发送通知。
  • 自动故障迁移(Automatic failover):当一个主服务器不能正常工作时,Sentinel会开始一次自动故障前一操作。
    img_45ab65af8c79fdfbc52ab940fbc18922.jpe
    4-哨兵.jpg

    特点:
  • 1、保证高可用
  • 2、监控各个节点
  • 3、自动故障迁移

缺点:

  • 1、主从模式,切换需要时间丢数据
  • 2、没有解决master写的压力
5)、集群proxy

img_224aecb3588dffc66bd0338adcce36ac.jpe
5-集群proxy.jpg

Twemproxy

  • Twemproxy 是一个Twitter开源的一个redis和memcache 快速/轻量级代理服务器。
  • Twemproxy是一个快速的单线程代理程序,支持Memcached ASCII协议和redis协议。

特点:

  • 1、多种hash算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkis
  • 2、支持失败节点自动删除
  • 3、后端Sharding分片逻辑对业务透明,业务方的读写方式和操作单个Redis一致。

缺点:

  • 1、增加了新的proxy,需要维护其高可用。
  • 2、failover逻辑需要自己实现,其本身不能支持故障的自动转移。
  • 3、可扩展性差,进行扩缩容都需要手动干预。
6)、直连版(三主三从)(cluster)
img_cce740d750be1c1d027163380239cb33.jpe
6-直连版.jpg

特点:

  • 1、无中心架构(不存在哪个节点影响性能瓶颈),少了proxy层。
  • 2、数据按照slot存储分布在多个节点,节点时间数据共享,可动态调用整数分布。
  • 3、可扩展性,可线性扩展到1000个节点,节点可动态添加或删除。
  • 4、高可用性,部分节点不可用时,集群仍可用,通过增加Slave做备份数据副本。
  • 5、实现故障自动failover,节点之间通过gossip协议交换状态信息,用投票机制完成Slave到Master的角色提升。

缺点:

  • 1、资源隔离性较差,容易出现相互影响的情况。
  • 2、数据通过异步复制,不保证数据的强一致性。
相关实践学习
基于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月前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
4月前
|
Kubernetes NoSQL Redis
k8s快速部署Redis单机
k8s快速部署Redis单机
|
9天前
|
监控 NoSQL 网络协议
【Azure Redis】部署在AKS中的应用,连接Redis高频率出现timeout问题
查看Redis状态,没有任何异常,服务没有更新,Service Load, CPU, Memory, Connect等指标均正常。在排除Redis端问题后,转向了AKS中。 开始调查AKS的网络状态。最终发现每次Redis客户端出现超时问题时,几乎都对应了AKS NAT Gateway的更新事件,而Redis服务端没有任何异常。因此,超时问题很可能是由于NAT Gateway更新事件导致TCP连接被重置。
|
6月前
|
存储 NoSQL Redis
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
70 0
|
2月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
35 3
|
2月前
|
NoSQL Linux Shell
Redis 的安装与部署(图文)
Redis 的安装与部署(图文)
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
存储 NoSQL Java
Spring Boot项目中使用Redis实现接口幂等性的方案
通过上述方法,可以有效地在Spring Boot项目中利用Redis实现接口幂等性,既保证了接口操作的安全性,又提高了系统的可靠性。
41 0
|
4月前
|
Kubernetes NoSQL Redis
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
|
4月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】遇见Azure Redis不能创建成功的问题:至少一个资源部署操作失败,因为 Microsoft.Cache 资源提供程序未注册。
【Azure Redis 缓存】遇见Azure Redis不能创建成功的问题:至少一个资源部署操作失败,因为 Microsoft.Cache 资源提供程序未注册。
下一篇
无影云桌面