Redis是一种键值数据库,有着时延低、性能好、数据结构丰富的特点。其中,尤为突出的一点是:由于它将所有的数据存放在内存中,所以读写性能十分惊人。所以Redis常用作数据库、缓存和消息代理,是电商秒杀、聊天系统等业务场景中的“熟客” 。
作为一个“中间商”,Redis的性能问题至关重要,一旦发生操作延迟问题,很容易引起连锁反应。所以本文聚焦Redis的性能分析,从Redis的基本概念出发,了解Redis是什么,它的运行机制,思考Redis 可以通过哪些机制来提高性能,当性能瓶颈发生的时候,我们又能做出哪些优化策略,最终确保业务系统的稳定运行。
【理论篇】Redis是什么,了解它的关键理念
掌握Redis的基础概念,它是一种基于键值对的NoSQL数据库,它的值支持多种数据结构,典型应用场景包括:缓存、排行榜、计数器、社交网络、消息队列等。
摘要:从非关系型数据库解决性能瓶颈说起,详细聊聊Redis的特性、支持的数据结构等。
摘要:如果你想开发一个类似于Twitter、YouTube这样的“大系统”,必不可少的就是Redis。通过对Redis系统的设计理念,代码案例,与其他数据库的区别等方面分析和学习Redis。
摘要:Redis常用作MySQL数据库之上的缓存,减少频繁读写对数据库造成的性能负担,本文以故事形式科普Redis中的缓存知识点。
【技术篇】Redis内部运行机制,如何影响它的性能
分析影响Redis性能的一些关键机制,比如它的单线程架构特点;它的持久化会占用过多内存从而影响性能;由于支持数据类型较多,导致不同的数据存储结构增加了性能的开销等。综上,我们可以通过Redis的内部实现原理,了解延迟出现的原因。
摘要:Redis是一个单线程架构的NoSQL数据库,带你了解单线程模型的Redis为什么性能如此之高,能达到每秒万级别的处理能力。
摘要:内存是影响Redis性能的关键因素,通过配置参数maxmemoey来限制使用的内存大小,本文详解2个常见的缓存淘汰算法。
摘要:Redis在主从模式下会有许多问题需要考虑,这里写了一些关于Redis在多服务器下的问题分析和总结,比如用哨兵功能解决主节点的写能力、存储能力限制。
Redis Sentinel 源码:Redis的高可用模型分析
摘要:哨兵是Redis提供的高可用模型解决方案,本文通过对其源码的理解,详细说明哨兵的代码实现方式。
摘要:介绍Redis的高可用保障的基础:数据持久化,分析它是如何实现的,以及RDB和AOF的区别等等。
【进阶篇】Redis遇到性能瓶颈,不妨试试这些策略
给出一些应对Redis性能问题的解决方案,当然也可以直接使用商业版本的Redis,比如GaussDB(for Redis),一劳永逸解决可能存在的性能隐患。
摘要:总结Redis缓存穿透、雪崩、击穿情况,并给出相应的解决方案。
摘要:思路如下:查看Redis集群内存监控指标,确认内存异常分片,通过在线工具&离线工具分析大Key问题,并给出建议。
一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
摘要:从fork引发的时延抖动问题,探究了fork这个系统调用的性能影响,包括业务抖动、内存率用地降低和实例容量受限。并且在最新的GaussDB(for Redis)版本中彻底解决了fork的性能隐患。
摘要:分析为什么在存储和计算分离的情况下,GaussDB(for Redis)能实现强一致、秒扩容、超可用、低成本,解决Redis数据库可能存在的各种性能瓶颈问题。