Djangoがビューのキーを設定する方法を理解しようとしています。保存されているすべてのキーをMemcachedから取得する方法があるかどうか疑問に思っています。cache.all()
か何か。cache.has_key('test')
でキーを見つけようとしましたが、それでもビューキーの名前の付け方がわかりません。
更新:これが必要な理由は、キャッシュの一部を手動で削除する必要があるが、キーの値がわからないためですDjangoは、cache_viewキーの設定です
RedisCache の場合、使用可能なすべてのキーを取得できます。
from Django.core.cache import cache
cache.keys('*')
https://github.com/dlrust/python-memcached-stats からmemcached_statsを使用できます。このパッケージにより、python環境内からmemcachedキーを表示できます。
前述のように、Django内のすべてのキャッシュキーのリストを取得する方法はありません。外部キャッシュ(memcached、データベースキャッシュなど)を使用している場合は、外部キャッシュを直接検査できます。
Djangoキーをバックエンドシステムで使用されているキーに変換する方法を知りたい場合は、Djangoのmake_key()関数がこれを行います。
https://docs.djangoproject.com/en/1.8/topics/cache/#cache-key-transformation
>>> from Django.core.cache import caches
>>> caches['default'].make_key('test-key')
u':1:test-key'
これが古すぎない場合は、キャッシュ全体を反復処理する必要があったため、同様の問題が発生しました。次の疑似コードのようにキャッシュに何かを追加すると、私はそれを管理しました:
#create caches key list if not exists
if not my_cache.get("keys"):
my_cache.set("keys", [])
#add to my cache
my_cache.set(key, value)
#add key to keys
if key not in my_cache.get("keys"):
keys_list = my_cache.get("keys")
keys_list.append(key)
my_cache.set("keys", keys_list)
Memcachedのドキュメントで推奨 すべてのキャッシュキーをリストする代わりに、memcachedを冗長モードで実行して、変更されるすべてを確認します。このようにmemcachedを起動する必要があります
memcached -vv
そして、作成/更新/削除されたキーを出力します。