redisの紹介と構成の詳細、redis-benchmak圧力測定ツール、reids-cliテストステータスツール


redisはkey-valueストレージシステムです.Memcachedと同様に、string(文字列)、list(チェーンテーブル)、set(セット)、zset(秩序セット)など、格納されたvalueタイプが相対的に多くサポートされています.これらのデータ型は、push/pop、add/remove、および交差および差セット、およびより豊富な操作をサポートし、これらの操作は原子的である.これに基づいて、redisは様々な方法のソートをサポートします.memcachedと同様に、効率を保証するために、データはメモリにキャッシュされます.違いはredisが更新したデータを定期的にディスクに書き込むか、修正操作を追加の記録ファイルに書き込むか、それに基づいてmaster-slave同期を実現することである.したがってredisは、電源が切れてもユーザーsessionキャッシュを保存できますが、memcachedが電源が切れた後、sessionキャッシュが失われます.
sessionキャッシュの役割:sessionは主にユーザーのログイン情報を格納するために用いられ、ユーザーのログイン要求時には、sessionに記録があることを問い合わせるだけで、すなわちログイン済み状態と判断し、別途ログイン操作を必要とせず、ユーザー情報がsessionにない場合、ユーザー名パスワードを入力してログイン操作を行う必要があると判断し、コミットしたデータをログインするには、まずデータベースにマッチングクエリーを行う必要がある.ユーザ情報が見つかった場合、データベースは結果を返し、対応するユーザ情報をセッションに書き込み、次回のユーザログイン状態の判断とする.
主にsessionを格納するデータベース:redis、memcached(nosqlデータベース)
redis&memcached比較:
redisはデータをディスクに書き込み、同期してデータを常に保持するので、電源を切ってもsessionを保存できます.ただしmemcachedは、ユーザーログイン情報をキャッシュに保存するだけで、電源が切れるとsession情報が失われ、新しいデータベースからクエリーする必要があります.データはキャッシュにのみ保存され、ディスクとのプライマリ・スレーブ同期も不要なため、データの一貫性を保つため、ユーザーのログイン状態のプロセスは非常に速い.
またredisはkey,valueなどのタイプのデータストレージをサポートし,memcachedはkeyのみをサポートする.だからredisはもっと適用できる範囲が多い.
redisは、memcacheのような従来のリレーショナル・データベース(mysqlなど)とは異なり、list(チェーンテーブル)、set(セット)の操作が内部に統合されている非リレーショナル・データ・ストレージ・ツールであり、listを挿入、削除して交差を取り、差セットをセットするなどのデータの処理を迅速に行うことができ、下位データベースの圧力を大幅に軽減し、ユーザーの応答速度を速めることができます.
centosシステムのインストール:
yum -y install redis
またはコンパイルインストール(略)
redisにはツールが付属しています.
redis-cliテストツール
redis-check-dumpローカルデータベース検出ツール
redis-benchmark性能試験ツール、圧力測定ツール
redis-check-aof更新ログ検出ツール
1、redis-benchmark redis基準情報、redisサーバ性能検出redis-benchmark-h localhost-p 6379-c 100-n 100000 100-n 100000 100個同時接続、100000個要求、検出hostがlocalhostポート6379のredisサーバ性能
benchmarkツールテスト情報:テストコマンド:redis-benchmark-n 100000-c 60 redisサーバに100000個のリクエストを送信し、各リクエストには60個の同時クライアント結果(部分):=======SET=======集合書き込みテスト100000 requests completed in 2.38 seconds 100000個のリクエストが2.38秒以内に60 parallel clientsを完了する60個の同時クライアント3 bytes payloadが1回に3バイトのデータkeep aliveを書き込む:1接続を維持し、1台のサーバがこれらのリクエスト93.06%<=15 milliseconds 99を処理する96% <= 31 milliseconds99.98% <= 46 milliseconds99.99% <= 62 milliseconds100.00%<=62 millisecondsすべてのリクエストは62ミリ秒以内に42105.26 requests per secondが毎秒42105.26回のリクエストを処理します.
2、redis-cli redis-cli -h localhost -p 6380 monitor Dump all the received requests in real time;モニタhostはlocalhost、ポートは6380、redisの接続と読み書き操作
redis-cli -h localhost -p 6380 info Provide information and statistics about the server ;hostはlocalhost、ポートは6380、redisサービスの統計を提供します.
redis-cli -h 10.10.86.x
>set name jason
OK
>get name
"jason"

daemonizeは後でプロセスを実行するかどうか、デフォルトはnopidfileバックグラウンドプロセスで実行する場合はpidを指定する必要があります.デフォルトは/var/run/redisです.pidbindはホストIPをバインドし、デフォルト値は127.0.0.1(注釈)portリスニングポート、デフォルトは6379 timeoutタイムアウト時間、デフォルトは300(秒)loglevelログ記録レベル、4つのオプション値、debug、verbose(デフォルト値)、notice、warninglogfileログ記録方式、デフォルト値はstdoutdatabase利用可能なデータベース数、デフォルト値は16、デフォルトのデータベースは0 saveで、更新操作がどれくらいの時間でデータファイルに同期されるかを示します.これは、デフォルトのプロファイルの設定など、複数の条件を組み合わせて3つの条件を設定できます.save 900 1 900秒(15分)のうち少なくとも1つのkeyが変更するsave 300 10 300秒(5分)のうち少なくとも300個のkeyが変更されるsave 60 10000 60秒のうち少なくとも10000個のkeyが変更するrdbcompressionがローカルデータベースに格納されたときにデータを圧縮するかどうかは、デフォルトではyesdbfilenameローカルデータベースファイル名であり、デフォルト値はdumpである.rdbdirローカルデータベースの保存パス.デフォルトは./slaveeof本機がスレーブサービスである場合、メインサービスのIPおよびポート(注釈)を設定masterauth本機がスレーブサービスである場合、メインサービスの接続パスワード(注釈)requirepass接続パスワード(注釈)maxclients最大クライアント接続数を設定し、デフォルトでは制限(注釈)maxmemory最大メモリを設定し、最大メモリ設定に達すると、Redisは、期限切れまたは期限切れになるKeyを消去しようとします.このメソッドが処理されると、最大メモリ設定に到達しても、書き込み操作はできません.(注記)appendonlyは、更新操作のたびにログを記録するかどうか、オンにしないと、電源が切れたときに一定期間のデータが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはnoappendfilename更新ログファイル名、デフォルトはappendonlyです.aof(注釈)appendfsyncはログ条件を更新し、3つのオプション値があります.Noはオペレーティングシステムがデータキャッシュをディスクに同期することを示し、alwaysは更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込み、everysecは毎秒1回同期することを示す(デフォルト).vm-enabledは仮想メモリを使用するかどうか、デフォルト値はnovm-swap-file仮想メモリファイルパス、デフォルト値は/tmp/redisである.swapは、vm-max-memoryがvm-max-memoryより大きいすべてのデータを仮想メモリに格納することはできません.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0です.