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