web-dev-qa-db-ja.com

Djangoでredisを使用するにはどうすればよいですか?

Redis-cacheについて聞いたことがありますが、どのように機能しますか?それはDjangoと私のRDBMSの間のレイヤーとして使用されますか、何らかの方法でRDBMSクエリをキャッシュしますか?

または、データベースとして直接使用することになっていますか?そのgithubページはログインの詳細を一切カバーしておらず、セットアップもしていないので、設定プロパティを設定するように指示するだけです。

90
meder omuraliev

このPythonモジュールには、readmeに明確な使用例があります。 http://github.com/andymccurdy/redis-py

Redisは、RAMキャッシュです。キーの基本的なGETおよびSETに加えて、辞書などのコレクションの保存をサポートします。 Djangoサイトを高速化すること。速度が必要になるまでRedisやその他のキャッシュを使用しないでください。時期尚早に最適化しないでください。

67
Spike Gronim

Redisがメモリに物事を保存するからといって、それがキャッシュであることを意味するわけではありません。これをデータの永続ストアとして使用している人を見てきました。

キャッシュとして使用できることは、高性能ストレージとして有用であることのヒントです。 Redisシステムがダウンした場合でも、ディスクに書き戻されなかったデータが失われる可能性があります。このような危険を軽減する方法はいくつかあります。ホットスタンバイレプリカ。あなたのデータが「ミッションクリティカル」である場合、たとえば銀行や店を経営している場合など、Redisは最適な選択肢ではないかもしれません。しかし、永続的なライブデータまたはいくつかのソーシャルインタラクションを使用してトラフィックの多いゲームを作成し、データ損失の可能性を十分に許容できるように管理する場合、Redisは一見の価値があります。

とにかく、ポイントは残ります、はい、Redisはデータベースとして使用できます。

Redisは基本的に「メモリー内」のKVストアであり、多くの機能を備えています。非常に柔軟です。キャッシュのような一時的なストアとして、またはデータベースのような永続的なストアとして使用できます(他の回答に記載されている注意事項があります)。

Djangoと組み合わせた場合、Redisの最良/最も一般的な使用例は、おそらく「応答」とセッションをキャッシュすることです。

ここにバックエンドがあります https://github.com/sebleier/Django-redis-cache/ およびDjango docs hereのドキュメント: https ://docs.djangoproject.com/en/1.3/topics/cache/ .

最近、キャッシュを監視するために https://github.com/erussell/Django-redis-status を使い始めました-魅力的です。 (redisでmaxmemoryを設定します。そうしないと、結果はあまり役に立ちません)。

21
ostergaard

RedisをDjangoアプリで分散タスクのキューとして使用することもできます。Redisを Celery または Python RQ

4