redisベース


redisって何?
Remote Dictionary Server(Redis)は、Salvatore Sanfilippoによって書かれたkey-valueストレージシステムです.Redisは、ANSI、C言語を使用したオープンソースの作成、BSDプロトコルの遵守、ネットワークのサポート、メモリベースでも永続化可能なログ型、KeyValueデータベース、および複数の言語のAPIを提供します.
ここではRedisチュートリアルのRedisの説明を引用しています.公式ですが、標準的です.
Redisは、分散ロックとして使用できるなど、豊富な特性を有する.データを永続化できます.メッセージキュー、ランキング、カウンタとして使用できます.publish/subscribe、通知、key期限切れなどもサポートされています.私たちがミドルウェアで実際の問題を解決しようとすると、Redisはいつも自分の役割を果たすことができます.
redisはどうしてこんなに速いのですか.
Redis単機qps(毎秒の同時)は110000回/sに達し、書く速度は81000回/sである.主に4つの側面にまとめられています.
  • のほとんどのリクエストは純粋なメモリ操作であり、非常に高速です.
  • は、多くの検索操作が特に速いデータ構造を用いてデータ記憶(String、List、Hash、set、zset)を行い、Redisにおけるデータ構造は専門的に設計されている.HashMapのように,検索,挿入の時間的複雑さはいずれもO(1)
  • である.
  • は単一スレッドを採用し、不要なコンテキスト切替と競争条件を回避し、マルチプロセスやマルチスレッドによる切替も存在せずCPUを消費し、各種ロックの問題を考慮する必要がなく、ロックの追加、ロックの解除操作は存在せず、デッドロックが発生する可能性があるために導かれる性能消費
  • はない.
  • 非ブロックI/O多重化機構
  • を用いる.
    redisメモリ淘汰メカニズム
    redisのメモリ淘汰メカニズムは全部で6つあります.
  • noevictionメモリが不足している場合、新しい書き込み操作は
  • とエラーが発生します.
  • allkeys-lruメモリが不足している場合、キー空間において、最も最近使用されているkeyであるLRU(Least Recently Used)
  • が移動する.
  • allkeys-randomメモリが不足している場合、キー空間からキー
  • をランダムに削除します.
  • volatile-lruメモリが不足すると、有効期限が設定されたキースペースから、最近最も少ないkey
  • を削除する.
  • volatile-randomメモリが不足すると、有効期限が設定されたキースペースからkey
  • をランダムに削除する.
  • volatile-ttlメモリが不足すると、有効期限が設定されたキースペースにおいて、より早い有効期限のkeyが
  • を優先的に除去する.
    具体的な配置方法はRedis.confでは構成できます
    # maxmemory-policy allkeys-lru