Category: Redis

0

[转]深入学习Redis(2):持久化

1. 2. 前言 在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持久化技术,主要是RDB和AOF两种持久化方案;在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,介绍在实际使用中,持久化方案的选择,以及经常遇到的问题等。

0

[转]深入学习Redis(1):Redis内存模型

1. 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1、估算Redis内存使用量。目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾忌;根据需求合理的评估Redis的内存使用量,选择合适的机器配置,可以在满足需求的情况下节约成本。 2、优化内存占用。了解Redis内存模型可以选择更合适的数据类型和编码,更好的利用Redis内存。 3、分析解决问题。当Redis出现阻塞、内存占用等问题时,尽快发现导致问题的原因,便于分析解决问题。 这篇文章主要介绍Redis的内存模型(以3.0为例),包括Redis占用内存的情况及如何查询、不同的对象类型在内存中的编码方式、内存分配器(jemalloc)、简单动态字符串(SDS)、RedisObject等;然后在此基础上介绍几个Redis内存模型的应用。 在后面的文章中,会陆续介绍关于Redis高可用的内容,包括主从复制、哨兵、集群等等,欢迎关注。

0

[转]一个包含10节点的Redis集群实践案例

Redis 通常不会被用作主要的数据存储,但它在存储和访问可容忍丢失的临时数据(如度量指标、会话状态、缓存)方面却独有长处,并且速度非常快,不仅提供了最佳性能,还内置了一组非常有用的数据结构。它是现代技术栈中最常见的主要部件之一。 Stripe(一家做支付的硅谷创业公司)的速率限定器就是基于 Redis 构建的,这些限速器运行在一个 Redis 实例上。Redis 主服务器有一些用于失效备援的追随者,不过在任何时候,都只有一个节点在处理读写操作。 各种消息来源声称,一个 Redis 节点每秒可以处理百万次操作。尽管我们的操作没有那么多,但也不会很少。每个速率限定器都需要运行多个 Redis 命令,而每个 API 请求都要通过很多个速率限定器。所以,每个节点每秒钟需要处理数万次到数十万次的操作。 如果节点出现饱和,就会不断出现故障。我们的服务可以容忍 Redis 的不可用,因此大多数情况下是没有问题的,但在某些情况下,问题的严重程度会升级。我们最后通过迁移到包含 10 节点的 Redis 集群来解决这个问题。对性能的影响可以忽略不计,重要的是现在我们可以实现水平可伸缩。

0

[转]从单机到2000万QPS:如何搭建高可用Redis平台?

知乎作为知名中文知识内容平台,每日处理的访问量巨大,如何更好的承载这样巨大的访问量,同时提供稳定低时延的服务保证,是知乎技术平台同学需要面对的一大挑战。 知乎存储平台团队基于开源 Redis 组件打造的 Redis 平台管理系统,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供一键部署集群,一键自动扩缩容,Redis 超细粒度监控,旁路流量分析等辅助功能。

0

[总结]为什么分布式一定要有Redis?

考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。 所以我斗胆以 Redis 为题材,对 Redis 常见问题做一个总结,希望能够弥补大家的知识盲点。 本文围绕以下几点进行阐述: 为什么使用 Redis 使用 Redis 有什么缺点 单线程的 Redis 为什么这么快 Redis 的数据类型,以及每种数据类型的使用场景 Redis 的过期策略以及内存淘汰机制 Redis 持久化机制 Redis 事务 Redis 和数据库双写一致性问题 如何应对缓存穿透和缓存雪崩问题 如何解决 Redis 的并发竞争 Key 问题 1. 为什么使用 Redis 我觉得在项目中使用 Redis,主要是从两个角度去考虑:性能和并发。 当然,Redis 还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件,如...

0

[转]Redis高可用技术解决方案总结

本文主要针对 Redis 常见的几种使用方式及其优缺点展开分析。 1. 一、常见使用方式 Redis 的几种常见使用方式包括: Redis 单副本; Redis 多副本(主从); Redis Sentinel(哨兵); Redis Cluster; Redis 自研。

0

[转]不管你的Redis集群规模有多大,都是时候思考下如何提升资源利用率了

Redis 是互联网产品开发中不可缺少的常备武器,它性能高、数据结构丰富、简单易用,但同时也是因为太容易用了,我们的开发同学不管什么数据、不管这数据有多大、不管数据有多少通通塞进去,最后导致的问题就是 Redis 内存使用持续上升,但是又不知道里面的数据是不是有用,是否可以拆分和清理。 为了更好地使用 Redis,除了对 Redis 做一些使用规范,还需要对线上使用的 Redis 有充分的了解。那么问题来了:一个 Redis 的实例用了那么大的内存,里边到底存了啥?都有哪些 key?每个 key 占用了多少空间? 雪球当前有几十个 Redis 集群,近千个 Redis 实例,5T 的内存数据,我们也想要分析业务是否有误用,以提高资源利用率。当然,曾经我们也深深地被这个问题所困扰,今天我就来和大家分享下我是如何解决这个问题的,希望能给各位一些启发。

0

[转]AutoLoadCache – 面对缓存,有哪些问题需要思考?

缓存可以说是无处不在,比如 PC 电脑中的内存、CPU 中的二级缓存、HTTP 协议中的缓存控制、CDN 加速技术都是使用了缓存的思想来解决性能问题。 缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。 本文主要是讨论我们经常使用的分布式缓存 Redis 在开发过程中的相关思考。