译 - The Google File System
《The Google File System》 是由 Google 公司开发的分布式文件系统,旨在解决存储海量数据的问题。GFS 采用了一些独特的设计,如基于大块的文件存储、多副本存储和自动故障恢复等。GFS 能够支持高并发、高吞吐量的数据访问,并且具有良好的扩展性和可靠性。GFS 的设计思想已经被广泛应用于其他分布式存储系统的开发中,是分布式存储领域的重要里程碑之一。 摘要We ...

Redis异地多活方案杂谈
Redis 的异地多活是一种跨地域容灾、并提供低延迟访问的部署方案。业界提供了很多的构建思路,这里将对比一下这里方案,并详细介绍一下业界的设计与实现。 一、简介二、思考2.1、Redis异地多活的定位在使用 Redis 的异地多活部署方案之前,为了提供 Redis 集群的高可用,我们也会提供跨地域主从的部署方式,通过这种方式我们也能实现地域级别的容灾能力。考虑到业务在使用 Redis 前的关注点一 ...

Redis扩缩容演进史与奇思妙想
Redis 的扩缩容方案在 RedisCluster 中发生了很多的改造与优化,其中主要包括对于 Slot 和 Keys 映射关系的优化,从最初的跳表,到基数树,再到最新的柔性数组的相关优化。同时 Redis 的非社区Cluster 模式下的扩缩容在业界在诞生了很多有意思的设计思路,比如 Codis 提供的同步/异步迁移方案,选择性复制以及旁路扩缩容的迁移方案等。这篇文章将简略的描述一下 ...

Redis持久化演进史与奇思妙想
目前 Redis 主要支持两种持久化的方式:RDB 和 AOF 。这两者在 Redis 的演进过程中也发生了很多有意思的变化。RDB 的数据格式也已经进行了十次版本迭代,AOF 从最初的 Rewrite 到 Redis 7.0.0 的 Multi-Part-AOF 也发生了很多的变化,这里将对每个版本进行详细的剖析,学习 Redis 的持久化演进历史。这篇文章主要借鉴于 Redis 持久化机制演进 ...

译 - Bitcoin: A Peer-to-Peer Electronic Cash System
《Bitcoin: A Peer-to-Peer Electronic Cash System》 翻译过来是《 比特币:一种点对点的电子现金系统》 ,这篇文章是比特币的发明人中本聪于 2008 年发表的比特币白皮书。这篇文章介绍了比特币的设计背景,讲述了比特币的工作原理,是加密货币,区块链领域必读的一篇文章,其中讲述了很多巧妙的构思。作者翻译水平有限,翻译的语句可能会有一些出入,建议有能力的读 ...

Redis相关库学习 - LibMR
LibMR 是一款适用于 Redis 集群的 Map Reduce (分发Redis命令并获取结果)的依赖库。它基于 libevent 的事件机制,通过使用多个线程池来分发异步任务,目前已经被 RedisTimeSeries 等模块使用。 一、简介 GitHub 地址:https://github.com/RedisGears/LibMR 二、架构设计2.1、相关命令由于该依赖库在编译时可以设置 ...

RedisModule剖析 - RedisProtobuf
RedisProtobuf 是一款支持 Protobuf (目前仅支持Version 3) 的 Redis 模块,从而支持了较高级的嵌套数据结构,其设计灵感来自于 RedisJSON。 一、简介 GitHub 地址:https://github.com/sewenew/redis-protobuf 二、架构设计2.1、依赖库 Protobuf : 仅支持 version 3 ; 2.2、相关命 ...

RedisModule剖析 - RedisRope
RedisRope 是一款可用于操作大型字符串数据(插入/拼接等变动)的 Redis 模块。它通过将一个独立的字符串拆分成多个Chunk中进行存储,从而实现了针对于大型字符串的多样写操作(插入/拼接等)的高效率,并通过引入 伸展树(Splay Tree) 的数据结构来保证数据读取的高效性。 一、简介 GitHub 地址:https://github.com/ekzhang/re ...

RedisModule剖析 - RedisIntervalSet
RedisIntervalSet 是一款用于记录不同间隔集合(IntervalSet)的 Redis 模块,按照官方文档给出的示例,我们可以记录从学前班、中学到大学的不同阶段的信息,每个阶段都有一个最小和最大值的分数(这里含义为年龄),最后可以通过查询不同的分数(年龄)来查询对应的学习阶段,通过这种方式能够快速的得到对应数据值所在的区间信息,这种设计思路有些类似于 ZSet。 一、简介 GitHu ...

Redis主从复制演进史与奇思妙想
Redis 的主从复制模型从 Redis2.8 版本到 Redis7.0 经历了很多大的优化与改造,从最初版本的全量数据同步,到后续的 PSYNC 的增量数据同步,无盘数据传输方案,PSYNC2 的同源数据同步方案,无盘数据加载方案到当前的最新版本中的共享复制缓冲区的方案。同时社区中也诞生了一些奇妙的解决方案,例如基于AOF文件的增量同步等。这篇文章主要借鉴于 Redis 主从复制演进历程与百度实 ...