当前位置: 首页 > 面试题库 >

如果Redis关闭,请禁用Rails缓存

欧镜
2023-03-14
问题内容

我正在使用Rails 4.1,并设置共享Redis ElasticCache节点进行缓存。我尝试了https://github.com/redis-
store/redis-store
和https://github.com/sorentwo/readthis,它们看起来很棒。

但是,如果Redis崩溃了怎么办?readthis和redis-store都完全失败。我宁愿网站没有缓存也慢而不死。

有人有想法吗?我提前谢谢你。


问题答案:

从https://github.com/sorentwo/readthis/pull/30起,可直接在Readthis中使用。它将在即将发布的1.2版本中提供。从自述文件:

在某些情况下,如果Redis崩溃,则希望保留来自磁盘或数据库的请求。可以通过在顶层启用它来实现连接容错:

Readthis.fault_tolerant = true

默认值为false,因为虽然它可能适用于提取操作,但它与其他基于状态的命令(例如,增量)不兼容。



 类似资料:
  • 在定义缓存时,不管提供程序是什么(对于intance Caffeine来说),我们通常将它们定义为bean,然后通过Spring Boot的自动配置将bean解析为。例如 不幸的是,这在Redis中是不可能的,因为它的实现不是公共的。 我们喜欢做的另一件事是定义bean,例如使用咖啡因 因此,目前唯一的解决方案是创建我们自己的RedisCacheManager,但这会阻止的使用。 所以这是我的问题

  • 问题内容: 今天,我第一次在本地计算机上启动Redis,然后在关闭Rails应用程序后关闭了所有终端窗口。一个小时后,我再次启动Rails应用程序,并执行以下操作来启动Redis服务器 但是,它告诉我 因此,即使关闭了Mac上的终端窗口,我也认为它仍在运行其较早的实例。 看着这个页面http://redis.io/commands/shutdown,我试图运行 在终端窗口中,但我收到此响应 因此,

  • 问题内容: 我最近看到很多人使用Redis作为缓存,为什么不使用Mongo?据我所知,Redis可以在诸如memcache之类的索引上设置过期日期,但是是否有任何理由不使用Mongo? 我问,因为我在MySQL中进行大型联接,然后在选择后更改数据。我已经在网站的其他部分上使用了内存缓存,但是将其保存在Mongo中将使我能够对缓存的数据进行地理空间搜索。 问题答案: 很多人的确将MongoDB用于中

  • 问题内容: 当redis达到“最大内存”条件时,它将允许客户端进行读取,但不能进行写入。 当然,这将导致致命错误……有什么方法可以使Rails处理缓存的读或写错误,因此,如果缓存发生问题(可用性,读取,写入等),它将继续以如果缓存设置为“关闭”? 问题答案: 您可以告诉redis在内存已满时要遵守的不同行为。 默认是 也许最好的选择是’volatile-ttl’,并确保所有缓存都包括:expire

  • 问题内容: 接下来的缓冲区在哪里…以及如何将其关闭? 我正在像这样的python程序中写出到stdout: 这里有一些缓冲: 我尝试了以下方法来摆脱可能的缓冲…但是没有运气: 如上使用-u标志和python调用 在每次sys.stdout.write()调用之后调用sys.stdout.flush()…所有这些都创建了一个带有python的缓冲流,等待一分钟左右以打印出前几行。 使用以下修改的命令

  • Im将replace与addtobackstack结合起来,用于添加活动的新片段。像这样: 当用户后退两次时,我希望应用程序退出 我在这里尝试了一些答案:单击两次后退按钮以退出活动,但不会关闭应用程序,只是继续删除最后一个片段。