ホームページ > バックエンド開発 > Python チュートリアル > Django は Redis キャッシュ サーバーを使用します

Django は Redis キャッシュ サーバーを使用します

高洛峰
リリース: 2016-10-17 13:51:10
オリジナル
1454 人が閲覧しました

Redis は、memcached と同様に、高パフォーマンスのキーと値のデータベースです。キャッシュ サーバーとは何かについては、Du Niang が非常に明確に説明しているため、ここでは個別に紹介しません。 。

では、私たちは通常どのような状況でキャッシュサーバーを使用するのでしょうか?すべての状況で必要なわけではありません。一般的に、このフィールドをキャッシュ サーバーに置く必要があるのは、フィールドを頻繁に読み取る必要がある場合だけです。また、キーと値のデータベースには非常に単純なデータしか格納されないため、その必要があります。保存するオブジェクトを選択するときは注意してください。

次に、Django で Redis データベースを構成して使用する方法を紹介します。まず、Ubuntu で次のコマンドを実行します。 Django で redis を使用するには、Django プラグインの redis をインストールする必要があります:

sudo apt-get install redis-server
ログイン後にコピー

これはオープンソース プロジェクトであり、github アドレスは https://github.com/niwibe/django-redis です。作者に感謝します。

これで、Django 設定で構成されました。

pip install django-redis
ログイン後にコピー

実際に必要なのは CACHES にあるこれらの項目だけです。次の 3 つの文は必要ありませんが、後の例では必要になるため、ここで設定しました。

さて、接続と設定が完了したので、プロジェクトでどのように使用するのでしょうか?次の例を見てみましょう。

   
CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.RedisCache',
        'LOCATION': '127.0.0.1:6379',
        "OPTIONS": {
            "CLIENT_CLASS": "redis_cache.client.DefaultClient",
        },
    },
}
REDIS_TIMEOUT=7*24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60
ログイン後にコピー

上記の 2 つのメソッドを通じて、必要なフィールドをパラメーターとしてメソッドに渡すだけで、redis の読み取り操作を実現できます。

それでは、前に述べた memcached についてはどうでしょうか?実際、これは同じ構成です:

from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
    key = 'user_id_of_'+user_name
    value = cache.get(key)
    if value == None:
        data = None
    else:
        data = json.loads(value)
    return data
#write cache user id
def write_to_cache(self, user_name):
    key = 'user_id_of_'+user_name
    cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)
ログイン後にコピー

もちろん、使用方法は上記の例と同じです。実際、redis のようなキャッシュ サーバーの場合、構成は非常に簡単で、具体的な使用方法も難しくありません。参考になるように、公式 Web サイトに多くのシンプルで明確な例があります。注意すべき点は 1 つだけです。この種の情報を Redis に保存することは、本当に注意する必要があることです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート