使用正则表达式查询 Rails 缓存以允许部分匹配并返回多个项目

ash*_*h_s 5 ruby regex caching ruby-on-rails

简而言之,我正在为 Rails 应用程序编写一个插件,我想缓存该插件生成的数据,但是我希望能够在需要时删除缓存的项目。

例如

Rails.cache.write("data_1", "the data")
Rails.cache.write("data_2", "the data")
Rails.cache.write("data_3", "the data")
Run Code Online (Sandbox Code Playgroud)

我应该调用什么来获取与正则表达式 /^data_/ 匹配的所有键,以便我可以删除它们?

我试过:

Rails.cache.fetch(/^data_/)
Rails.cache.read(/^data_/)
Run Code Online (Sandbox Code Playgroud)

任何帮助/指示将不胜感激。

Ank*_*oni 3

您可以使用.match。所以这样的事情应该有效:

if Rails.cache.fetch(..).match(/^data_/)
  do something
Run Code Online (Sandbox Code Playgroud)

  • @AnkitSoni 这给出了语法错误 Rails.cache.fetch(..).match(/^data_/) (2认同)