【问题标题】:Redis Vs. MemcachedRedis 对比内存缓存
【发布时间】:2015-03-14 11:22:14
【问题描述】:

我现在使用 memcached 作为 LRU 缓存来缓存大数据。我已将最大对象大小设置为 128 MB(我知道这是低效的,不推荐),并且总内存缓存为 1 GB。但是 128 MB 不足以满足我的目的,所以我计划迁移到 Redis。几个问题:

  1. memcached 非常慢 - 我当前的 memcached 设置需要 3-4 秒才能返回一个请求。这是非常缓慢的。有时我需要发出多达 30 个 memcached 请求来服务一个用户请求。仅仅这样做就需要 90 秒!是我做错了什么还是 memcached 实际上这么慢?
  2. Redis 会更快吗? - 我打算使用 Redis 列表来缓存数据。我将使用 0 到 -1 获取完整列表。我希望 Redis 更快,因为如果它需要 90 秒,我最好不要使用任何缓存!

谢谢!

【问题讨论】:

    标签: performance caching redis memcached lru


    【解决方案1】:

    我建议您进行一些分析以了解瓶颈在哪里。我不知情的猜测是,对于如此大的对象,您可能会受到应用服务器和 memcached 之间的连接的限制,因此您会在 redis 中看到类似的结果。也可能是您的应用程序花费大量时间来编组和解组大量对象。如果这很简单,那么可能值得尝试一种缓存方案,在这种方案中,您只是缓存发送到客户端的请求(我确信它远小于 128MB)。

    要尝试的另一件事是打开压缩。这会增加压缩/解压缩的延迟,但如果这确实是问题,则会减少网络延迟。

    【讨论】:

    • 感谢 rgbrgb。我使用了 Redis,该应用程序现在运行良好。尽管将数据保存到 Redis 并解压缩确实需要很多时间。但总的来说,我认为它仍然比直接使用数据库而不使用任何缓存层有所改进。
    猜你喜欢
    • 2015-10-01
    • 2014-11-06
    • 1970-01-01
    • 2013-10-28
    • 2022-09-23
    • 2016-03-29
    • 2018-02-14
    • 2018-01-30
    相关资源
    最近更新 更多