相关疑难解决方法(0)

如果redis已经是堆栈的一部分,为什么Memcached仍然与Redis一起使用?

Redis可以完成Memcached提供的所有内容(LRU缓存,项目到期,现在在版本3.x +中进行集群,目前处于测试阶段)或者使用twemproxy等工具.性能也类似.更重要的是,Redis增加了持久性,因此在服务器重启时您不需要进行缓存加温.

参考比较Redis和Memcache的一些旧答案,其中一些支持Redis作为Memcache的替代(如果已经存在于堆栈中):

尽管如此,在研究Instagram,Pinterest,Twitter等大型网络规模公司的堆栈时,我发现他们将Memcached和Redis用于不同目的,而不是使用Redis进行主要缓存.主缓存仍然是Memcached,Redis用于基于数据结构的逻辑缓存.

截至2014年,为什么memcached仍然值得将其作为附加组件添加到堆栈中,当你已经有一个可以完成memcached可以做的所有事情的Redis组件时?除了现有的Redis之外,建筑师/工程师还有哪些优点还包括memcached?

更新:

对于我们的平台,我们已经完全丢弃了Memcached,并将redis用于简单和逻辑缓存要求.高性能,灵活可靠.

一些示例场景:

  • 按特定模式列出所有缓存的密钥,并读取或删除它们的值.在redis中很容易,在memcached中不容易(很容易).
  • 存储超过1mb的有效负载,在redis中很容易,需要在memcached中调整slab大小,这会产生自身的性能副作用.
  • 轻松快照当前缓存内容
  • Redis集群以及语言驱动程序也可以生产,因此集群部署也很容易.

memcached caching redis

81
推荐指数
2
解决办法
1万
查看次数

Rails和缓存,在memcache和redis之间切换是否容易?

是否有一个共同的api,如果我在Redis或Memcached之间切换,我不需要更改我的代码,只需配置设置?

memcached caching ruby-on-rails redis

26
推荐指数
2
解决办法
2万
查看次数

需要LRU缓存时,Memcached vs Redis为Rails.cache

我目前使用Redis作为Sidekiq的工作队列.我也有兴趣将它用作Rails.cache的缓存机制.

推荐的Rails缓存机制永远不会使项目过期,并依赖于驱逐最近最少使用(LRU)的项目.不幸的是,默认情况下,Redis不配置为驱逐最近最少使用的项目,而推荐的缓存存储是memcached.

此外,驱逐项目不是我想要的工作队列行为,并且配置相同的Redis实例来执行此操作可能会导致不良结果.我也不希望我的队列与我的缓存共享周期.

在这种情况下你会推荐什么?第二个redis存储充当缓存并配置了LRU?或者只使用rails推荐的memcached缓存存储并且仅使用redis作为队列?

我倾向于使用Redis和Memcached,尽管有大量的堆栈溢出文章推荐否则.memcached默认支持LRU驱逐是赢得我的.

一些文章:

在评论中隐藏得更深,海报提到memcached的LRU驱逐是将其用作缓存的一个很好的理由.

ruby memcached caching ruby-on-rails redis

9
推荐指数
1
解决办法
2551
查看次数

Rails 3 - 缓存Web服务调用

在我的应用程序中,在主页操作中,我调用返回JSON的特定Web服务.

parsed = JSON.parse(open("http://myservice").read)
@history = parsed['DATA']
Run Code Online (Sandbox Code Playgroud)

这个数据每60秒不会改变一次以上,并且不会在每个访问者的基础上改变,所以我希望,理想情况下,缓存@history变量本身(因为解析不会产生新的结果)并自动使其无效如果它超过一分钟.

我不确定这样做的最好方法.默认的Rails缓存方法似乎都更倾向于需要手动过期的内容.我确信有一种快速简便的方法可以做到这一点,我只是不知道它是什么!

caching web-services ruby-on-rails-3

6
推荐指数
1
解决办法
1641
查看次数