ホームページ  >  記事  >  バックエンド開発  >  Djangoでのredisキャッシュサーバーの使い方を詳しく解説

Djangoでのredisキャッシュサーバーの使い方を詳しく解説

巴扎黑
巴扎黑オリジナル
2017-08-17 11:32:381929ブラウズ

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

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

次に、Django で Redis データベースを構成して使用する方法を紹介します。まず、Ubuntu で次のコマンドを実行します。 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 に保存することは、本当に注意する必要があることです。

以上がDjangoでのredisキャッシュサーバーの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。