【七天玩转Redis实战营】答疑汇总Day5 Redis架构及介质选择指引

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【第五讲,Redis架构及介质选择指引】讲师:民科,阿里云NoSQL内核工程师。课程内容:如何进行Redis选型;云Redis版集群架构及对比;如何使用Redis做缓存。答疑汇总:特感谢班委@邓小兵 同学

【第五讲,Redis架构及介质选择指引】
讲师:民科,阿里云NoSQL内核工程师。
课程内容:如何进行Redis选型;云Redis版集群架构及对比;如何使用Redis做缓存。

答疑汇总:特感谢班委@邓小兵 同学

文字答疑封面.jpg

Q1:读写分离的实现原理是什么?

 

A1:读写分离实际上是分为分两部分,一部分是访问链路,一部分是数据同步。数据同步:基本的主备同步的过程中,如果读副本的个数比较多的话,采用链式负责任的方式,这样可以降低主节点的压力。访问链路:在开通了读写分离方式后,会有一个 proxy 做代理,有 proxy 去区分用户发送来的命令,判断读请求还是写请求,写请求会转发到主节点处理,读请求会按一定的比例分发到其他的只读节点上。

 

Q2Redis 一直保持单线程串行数据处理的优势是什么(或者说 Redis 多线程会存在哪些问题)?没有发挥多核的优势,后面有考虑多线程版本吗?

 

A2Redis 一直使用单线程模式,主要是因为 Redis 支持多种复杂的数据结构,比较难实现多线程并行访问,除非是按照每个 key,按照每个 slot 去分,按 keyslot的粒度去加锁,这样确实可以实现。社区版 6.0 现在是支持 IO 多线程的。阿里云的 5.0企业版也支持IO 多线程,后续的企业版还会开放更深入的多线程能力。

 

Q3:单实例和集群有对应 QPS的参考值吗?

 

A3:简单命令参考:纯社区版 在 10W 左右 可以选择单实例,如果超过了建议使用集群版。阿里云简单的命令上限能到20W 左右。

 

Q4:集群间取消迁移会产生脏数据吗?

 

A4:开源实现会出现这种问题的,在阿里云上会做数据回滚,不会有产生脏数据的问题。

 

Q5:阿里云 Redis 怎么做到内存+SSD/HDD 的还能做到机会和社区版纯内存版相差无几的效果的,相差有多少呢?

 

A5:目前是没有 HDD 的这种实现,而通过SSD实现的产品性能也是没有纯内存的性能高的。

 

Q6:开源版的监控有没有细粒度到命令级别的?

 

A6:阿里云提供的都是有相应的监控运维上的改进,这些细粒度的功能都是有的(包括 慢查询,读写审计等)

 

Q7:阿里云在数据迁移时候 RT 没有变高?

 

A7:如果是开源版本实现,RT 会受到大 KEY 影响,需要在源端打包发送到目的端,这中间打包、发送、再到目的端解开来恢复这个过程会锁住 DB,这会有一定的影响,而阿里云的做法是把整个数据迁移的过程是在后台做的,先做后台的数据copycopy 完之后再到目的端,这中间不会对用户有 RT 影响,除了网络带宽上可能会有一些波动,RT一般不会受数据迁移的影响。

相关实践学习
基于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
相关文章
|
2月前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
2月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
76 8
|
6月前
|
NoSQL 算法 Java
(十三)全面理解并发编程之分布式架构下Redis、ZK分布式锁的前世今生
本文探讨了从单体架构下的锁机制到分布式架构下的线程安全问题,并详细分析了分布式锁的实现原理和过程。
123 6
|
6月前
|
NoSQL Redis
Redis 主从复制架构配置及原理
Redis 主从复制架构配置及原理
76 5
|
6月前
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
6月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
114 1
|
6月前
|
存储 NoSQL 固态存储
架构设计篇问题之将计数全部存储在Redis中的问题如何解决
架构设计篇问题之将计数全部存储在Redis中的问题如何解决
|
21天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
166 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
87 6
|
18天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。