web-dev-qa-db-ja.com

Memcached、Redis、Varnishからどのように選択しますか?

Memcached、Redis、Varnishについては本当に混乱しています。それらがキャッシュに使用されていることは知っていますが、それらがどれだけ役立つか、そしてどれを使用するかをどのように知っているかはわかりません。

そして最後に、ユーザーがアップロードした写真やビデオがあるサイトに何を使用するか知りたいですか?それが役立つ場合は、Djangoフレームワークを使用しています。

18
Robin

Varnishは奇妙なものです。これは、実際のWebサーバー(Apache、nginxなど)の前でリバースプロキシとして実行されるサーバーであり、サーバーの応答を個別に保存し、次のリクエストに対応することを決定できます。リクエストをバックエンド(ウェブサーバー)に渡すので、単純にHTMLキャッシングのようなものです。

Memcachedとredisは、実際にはデータストレージサーバー、特にKey-Valueストレージサーバーです。 python 1つの巨大な「辞書」と言えます。キーを使用して値を設定し、キーごとに取得します。両者の違いはほとんどありません。Googlememcachedとredisを使用するだけです。 。

25

Djangoとmemcachedを使用しているので、その使用方法を知ることができます。
ロードするのに少しの時間(数秒)を必要とする、ほとんど変更されないデータがあります。
それらをキャッシュすると、秒が秒の端数に変わるため、読み込み時間が10分の1に短縮されます。

Memcachedの使用は非常に簡単です。

  1. OSにmemcachedをインストールして実行します。

  2. キャッシュメカニズムとして使用するようにDjangoを構成します。
    In settings.pyまたは同等のセットBACKENDオプション:
    'BACKEND': 'Django.core.cache.backends.memcached.MemcachedCache'

  3. Memcachedからデータを保存および取得します。

    from Django.core.cache import cache
    cache.set('myData',myData)
    # ... in another place:
    myData = cache.get('myData')
    if not myData:
         # re-calculate myData in case of a 'cache miss', then re-caching it.
         # myData = <calculations>
         cache.set('myData',myData)
    
6
tonjo