开发者生态
morning
对memcached的赞扬
2026-06-23
1 阅读
j03b
如果您碰巧发现自己处于系统管理员职位,或者碰巧维护某人的基础设施,那么很可能在某个时候会出现“我们需要缓存”的主题。您想了一下,选择了 Redis,因为您已经习惯了它,它功能齐全,而且很有效!您记得它是一个良好、可靠的缓存,并且您想知道最近版本带来了哪些新功能,然后前往其主页:您的代理没有失败。他们的背景是。询问代理想知道:如何使用 Redis Iris 作为 AI 应用程序的实时上下文引擎? 1 是的,所以可能与人工智能有关 2 。这是可以理解的,因为Redis是一家想要赚钱的公司。无论如何,除了 Redis 主页之外,您部署它,然后就可以开始 - 您值得信赖的缓存。您将连接字符串交给请求它的人,然后就可以开始了。几个月后,过了一段时间,事实证明,cache.set("key", "value") 是一个非常简单的抽象,并且绝对比 INSERT INTO table VALUES ('key', 'value') 更容易。人们开始将远程字典服务器视为始终存在的东西、持久数据的东西、数据库。你不知道这一点。您的运营同事不知道这一点。因此,您的警报也不知道这一点,因为您假设人们将缓存视为易失性的东西。当你碰巧对 Redis 做了一些事情时,你就会发现这种情况一直在发生。也许您升级它,也许您将它移动到另一个节点,也许您的猫按下了 RAID0 服务器 HDD 托盘上的弹出按钮。问题不在于 Redis 没有持久性,问题在于通常情况下,Redis 被作为缓存放入堆栈中,并且它的运行假设人们是这样对待它的。通常,当您意识到这一点时,已经为时已晚,Redis 在应用程序中纠缠得太深,无法真正离开它的位置。相反,您可以像宠物一样维护和监视它,从而获得永恒的乐趣。进入 memcached 首先 - 什么是 memcached?简单,问问它的网站:什么是Memcached?免费开源、高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。 3 哇,页面的第一句话,甚至还有代码示例。看看顶部那些可爱的小吉祥物! Memcached也是一个缓存,类似于Redis。您可能正在使用像 Django 这样的框架,它支持可插入缓存并允许您在不同的缓存后端之间切换。但是,当 memcached 的功能比 Redis 少得多时,为什么要使用它呢?以下是我为什么现在总是更喜欢 memcached 而不是 Redis 的原因: 处理 memcached 停机非常容易,因为客户端库通常会忽略连接异常。例如,如果服务器关闭,简单的 get 将仅返回默认值(或无)。集群 memcached 很棒,因为 memcached 实际上没有内置集群。为了对其进行“集群”,您可以使用多个 URL 4 配置客户端库,并且客户端将根据散列密钥选择目标实例。如果客户端调用检测到实例已完成,则会从哈希器中删除该节点。一段时间后,客户端会自动尝试重新连接并使用失效节点。 memcached“解决”了整个持久性问题,因为它不会持久化到磁盘。因此,它非常适合在您需要的任何地方安排为无状态工作负载。这些事情对于 Redis 来说都不是不可能的,只是 memcached 的架构总体上更倾向于这些方向,这使得从操作的角度来看它更加简单。但由于 memcached 是一个相对简单的应用程序(加上您可以运行数十个实例,缓存大小约为 64 MB 并且几乎没有开销),如果现在我需要缓存,我通常会使用 memcached。也就是说,许多“数据库太慢”问题实际上是从“查询太慢”或“缺少索引”开始的,因此请做一个友善的人并帮助您的开发人员优化他们的查询。另外,如果您对 memcached 背后的一些决定感到好奇,该博客包含有趣的帖子,其中一篇于 5 月刚刚发布:“该响应需要多长时间......真正的?” 。 https://redis.io/,访问时间:2026-06-02 ↩︎ 也就是说,https://redis.io 可能不是工程师的最佳切入点,该网站似乎适合人们做出购买决定。 ↩︎ https://memcached.org ,访问时间:2026-06-02 ↩︎ 使用服务发现机制自动生成此设置的奖励积分。 ↩︎