77

どういうわけか実行Rails.cache.clearして、特定の名前/文字列のキーのみをクリアすることは可能ですか?

キャッシュ全体をクリアしたくありません...blog/post名前に文字列が含まれているキー(つまりblog/post/1blog/post/2)だけです。

キャッシュにmemcachedを使用してdalliを使用し、Rails3.0.6を実行しています。

4

3 に答える 3

125

これは、キャッシュに書き込む方法です-

Rails.cache.write('key', 'value', :time_to_idle => 60.seconds, :timeToLive => 600.seconds)

キャッシュから削除するには、deleteアクションを使用できます-

Rails.cache.delete('key')

複数のキーを削除 -

Rails.cache.delete_if {|k, v| k =~ 'key' }
于 2012-08-17T12:23:03.987 に答える
14

私自身の質問に答えるために... memcached を使用している場合、memcached はパターンによるキーの列挙またはクエリをサポートしていないため、実際にはdelete_iforを使用できないようです ( 1 )。delete_matched

于 2012-08-17T15:16:51.480 に答える
3

memcached を使用した dalli ストアのメソッドの単純な実装を追加するhttps://github.com/Phobos98/dalli-delete-matched gem を使用できます。delete_matched

于 2016-04-14T08:17:36.730 に答える