何らかの方法でRails.cache.clear
を実行し、特定の名前/文字列のキーのみをクリアすることは可能ですか?
キャッシュ全体を消去したくありません...名前に文字列blog/post
(つまり、blog/post/1
、blog/post/2
)を含むキーだけを削除します。
キャッシュにmemcachedで dalli を使用し、Rails 3.0.6。
私自身の質問に答えるために... memcachedを使用していることを考えると、実際にはdelete_if
またはdelete_matched
は、memcachedがパターンによるキーの列挙または照会をサポートしていないためです( 1 )。
これは、キャッシュに書き込む方法です-
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' }
https://github.com/Phobos98/dalli-delete-matched gemを使用すると、memcachedでdalliストアのdelete_matched
メソッドの簡単な実装を追加できます。