大多数人对 Redis 的误会
2021-04-01
前几天微博发生了一起大的系统毛病,很多技术的伴侣都比较
关怀,其中的缘由不会超出 James Hamilton 在 On Designing
and Deploying Internet-Scale Service(1)概括的那几个范
围,James “第一条阅历 Design for failure”是全部互联网架构成功
的一个关键。互联网系统的工程理论其实格外简约,James paper
中内容几乎称不上理论,而是多条实践阅历共享,每个公司对这些阅
历的理解及执行力打算了架构成败。
题 外 话 说 完 , 最 近 又 争 辩 了 Redis 。 去 年 曾 做 过 一 个
MemcacheDB, Tokyo Tyrant, Redis performance test ,到目
前为止,这个 benchmark 结果照旧有效。这 1 年我们经受了很多眼
花 缭 乱 的 key value 存 储 产 品 的 引 诱 , 从 Cassandra 的 淡 出
(Twitter 暂停在主业务使用)到 Hbase 的衰亡(Facebook 新的邮箱
业务选用 HBase(2)),当再回头再去看 Redis,发觉这个只要 1 万多
行源代码的程序布满了奇特及大量未经挖掘的特性。 Redis 功能惊
人,国内前十大网站的子产品估量用 1 台 Redis 就可以满足存储及
Cache 的需求。除了功能印象之外,业界其实普遍对 Redis 的生疏
存在肯定误区。本文提出一些观点供大家探讨。
1. Redis 是什么
这个问题的结果影响了我们怎样用 Redis。假如你认为 Redis
是一个 key value store, 那可能会用它来代替 MySQL;假如认为它
是一个可以长久化的 cache, 可能只是它保存一些频繁访问的临时数
据。Redis 是 REmote DIctionary Server 的缩写,在 Redis 在官
方 网 站 的 的 副 标 题 是 A persistent key-value database with
built-in net interface written in ANSI-C for Posix systems ,
这个定义偏向 key value store。还有一些看法则认为 Redis 是一个