2016-10-02 9 views
0

今日私のプロジェクトを開発する間に問題が発生しました。MemcacheまたはRedisのタグでキャッシュをクリアする方法は?

たとえば、キャッシュキー= post_list_OFFSET_LIMITによってブログ投稿のようなデータをmemcacheに入力します。ここで、オフセットと動的なデータはページ設定によって制限されます。

新しい投稿を追加するとプレフィックスpost_list_でキャッシュをクリアできません。キャッシュ終了後に新しい投稿が表示されます。

Memcacheにはタグ付け機能はありません。タグ付けのサポートはカスタムコードで追加できます。 redisにはこの機能がありますか?プレフィックスによるタグのタグ付けまたは削除

ありがとうございました。

答えて

1

あなたはRedisの中に、3つの方法で解決することができます:

  1. 使用SCANコマンド:http://redis.io/commands/scanあなたのパターンに一致するキーを取得し、それらを削除します。 How to atomically delete keys matching a pattern using Redis
  2. キーに有効期限を設定します。 http://redis.io/commands/expire。だから、それはそれが時間のために住んでいた後に期限が切れる(削除される)。
  3. 追放ポリシーをlru、http://redis.io/topics/lru-cacheと設定します。そのため、新しいキーにスペースが必要な場合は、レディ自体が古いキーを削除します。これは、redisをキャッシュとして単独で使用する場合にのみ有効です。
+0

ありがとうございました。 SCAN機能はパフォーマンスに悪影響を及ぼすことがありますか? – trauma

+0

KEYSコマンドを使用すると、ブロックされているためにパフォーマンスが低下します。代替はSCANコマンドです –

関連する問題