(1).Redis概要
Redisのは、メモリの持続性に基づいて、ANSI C、サポートネットワークで書かれたオープンソースの使用は、複数の言語のAPIタイプ、キー値(キータイプ)データベース(非リレーショナルデータベース)、および利用可能にログインすることができます。
Redisのは、高性能データベースキー値です。ストレージのキー値のMemcached型は機会の下部にリレーショナルデータベースに非常に良い補数を再生することができ、このタイプの不足を補う大きく表示されます。これは、Java、C / C ++、PHPやJavaScript、Perlやオブジェクト-C、Pythonの、ルビー、アーランと他のクライアント、使いやすくするために用意されています。
Redisのは、マスター・スレーブの同期をサポートし、プライマリノードに障害が発生した場合、マスタ・スレーブノードを監視するためのRedisセンチネル(センチネル、Redisのが来る)ツールを用いて、別のノードから新しいマスターノードになるために自分自身を高めます。
1)サポートされているデータタイプ
そして、Memcachedのは似ていますが、それは、文字列(String)を、一覧(リスト)、セット(コレクション)ソートセット(順序集合)とハッシュ(ハッシュタイプ、連想配列)を含む比較的多くの記憶値の種類をサポートしていますビットマップ(ビットマップ)とHyperLoglog。
2)パフォーマンス
キー・ストレージの一万の小さな文字列は、およそ100Mメモリを消費します。
Redisのは、シングルスレッドであるため、ホストサーバ上に複数のCPUがある場合、一つだけを使用することができるが、Redisのは比較的簡単KVデータ保管ですので、それは、CPUがボトルネックになることを意味するものではありません、CPUは通常、ボトルネックになることはありません。
一般的なLinuxサーバ上、唯一の1秒に対処するための同時必要性の500K(5000万)は、より良い状況下でホストのハードウェア場合は、毎秒は、同時実行数百万に到達することができます。
Memcacheの持つ3)Redisの比較
Memcacheのは、唯一のキャッシュオブジェクトにメモリを使用することができます。また、定期的にディスクにデータを保存することが、画像の上にキャッシュするためにメモリを使用するRedisの追加は、データを永続的に保存されています。サーバのクラッシュや突然停電すると、Redisのディスクベースのデータ復旧。
Redisのは、シングルスレッドのサーバー、すべての要求に対応するための一つのスレッドだけです。メモリキャッシュはマルチスレッドです。
Redisのは、複数のデータ型をサポートしています。
(2)インストール
YUMのRedisをインストールすると、それはレミリポジトリのソースをお勧めします。レミソースはRedisの最新バージョンを提供するので、あなたは最新バージョンをインストールするのRedis YUMを使用してソースを渡すことができます。また、最新のPHPとMySQLのyumソースだけでなく、関連するサービスプログラムを提供します。
1)レミリポジトリEPELソースがソースに依存し、ソースEPELをインストールする必要があります
[ルート@のyouxi1〜]#yumを-y EPEL-リリースをインストールします
2)インストールレミリポジトリソース
[root@youxi1 ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm [root@youxi1 ~]# ls /etc/yum.repos.d/ //下载完成后会出现许多remi的yum源,这里要用到的是remi.repo这个源 CentOS-Base.repo CentOS-Sources.repo remi-glpi92.repo remi-php70.repo remi-safe.repo CentOS-CR.repo CentOS-Vault.repo remi-glpi93.repo remi-php71.repo CentOS-Debuginfo.repo epel.repo remi-glpi94.repo remi-php72.repo CentOS-fasttrack.repo epel-testing.repo remi-modular.repo remi-php73.repo CentOS-Media.repo remi-glpi91.repo remi-php54.repo remi.repo
3)指定されたソース・インストールRedisのYUMを使用して
[ルート@ youxi1〜]#yumを --enablerepo =レミ-yのRedisをインストールする// - enablerepo yumのソースを指定し 、[ルート@ youxi1〜]#のRedisの-cliをインストールした後--version //コマンドのバージョン使用した完全なチェックです redis-をCLI 5.0.5
注意:インストールが完了レミ源である後、デフォルトでは有効にされていない、必要性がレミリポジトリソースセットアップを使用する際に、ソースを指定するには、需要--enablerepo =レミレミリポジトリオプションを使用して、それをインストールすることができます。
4)スタートRedisのとカイからの起動を設定します
[ルート@ youxi1〜]#は、Redisの開始systemctl Redisの有効[ルート@ youxi1〜]#systemctlのを は/ usr / libに/にsystemd /システムに/etc/systemd/system/multi-user.target.wants/redis.serviceからシンボリックリンクを作成したが/redis.service。
注意:Redisのポート番号は6379です
(3)プロフィール情報
Linuxでは、Redisの設定ファイルは、/ etc /ディレクトリにredis.confを保存します。次のパラメータと一緒に使用することができます。
//ライン69、Redisのはアドレスリスニング バインド127.0.0.1 外部ネットワークアクセスRedisのを禁止するかどうか、セーフモードで//ライン88を、そう表現は唯一のローカルアクセスを使用して有効に プロテクトモードはい 、リッスン//ライン92ポート番号の ポート6379 / *線101に、TCP-バックログの長さを指定。TCP-バックログは、待機キューです。 Redisの処理要求を必要な多数の要求がキューに待機する必要がある場合*バックログによってキャッシュされます。 *バックログの数を決定するために、キューの数をキャッシュすることができる * / TCP-511バックログ //ライン109、靴下靴下ファイルの場所とファイル指定された通信を使用します。同じホスト上のサーバーとクライアントの場合は、開いて提案しました。TCP / IPプロトコルスタックのカプセル化を介して、デカプセル化介さず直接メモリに靴下を通信交換することができる /tmp/redis.sock#1 unixsocket ライン110 //最初に、靴下の定義されたファイルのパーミッション #1 unixsocketperm 700 、ライン113 //クライアントの接続が成功したことをした後、どのくらいのアイドルタイムアウト(非アクティブ、なしのデータ交換)。0は、この機能をオンにしないで意味 タイムアウト0 秒でリンクライン130 //長時間 のTCPキープアライブ300 // 136行を、デーモンがバックグラウンドで実行されています。あなたは、Redisのサービスを開始するためのスクリプトを使用している場合でも、noにあれば、それはデーモンを実行します。一般設定はい NOデーモン化 // 147行は、Redisのプロセスは、成り上がりかにsystemdによって引き継がれます。変更せずに、教師なしの相互作用をデフォルト。 NO監修 //ライン158、PIDファイルアドレス PidFileオプション/var/run/redis_6379.pid //ライン166、ログレベル のLogLevelお知らせ //ライン174、ログファイルの場所の ログファイル/var/log/redis/redis.log //行186、どのように多くのデフォルトのデータベース。しかし、分散、一方のみに データベース16 / 218-220 *最初の行、スナップショット保存ポリシー、ストレージポリシーディスク永続 *最初の数秒で、時間の単位であり、2番目の数字は結合であります倍変化の数は、 *最初の例で、主キーの値は、少なくとも900秒を変える、それが(永続的)のスナップショットをとる *秒が300秒以内に、キーを変更し、少なくとも10回、行っていますスナップショット(永続的な) *すべての条件が関係を並置され、ルールを使用することを選択したキーに応じて変更する * / 保存900 1 割引300 10 60万保存 エラーが停止した後、スナップショットバックアップの際に、// 235行を。デフォルトはいあなたがすることができ STOP-書き込みエラー-ON-bgsaveはい //ライン241を、RDBファイル圧縮を指定します。はい、それは圧縮がCPUリソースを消費することを意味します はいrdbcompression / * 250行、RDBファイルのコード検出かどうかをチェックします。 *これは、チェックチェックコードを提出するのRedisのRDBファイルかどうかを起動時にロードされた定義Redisの開始またはRDBは、パリティ情報かどうかを再度チェックファイルをロードすると、RDBファイルがRedisの中にパリティ情報が生成されます生成。 *それが検出されたときに、あなたが時間を消費する場合は、それはときRedisのスロースタートにつながるが、RDBファイルエラーかどうかを判断することができます。 * / Rdbchecksumはい //ライン253、RDBファイル名 dbfilename dump.rdb //ライン263、RDBファイルが保存されたパス ディレクトリは/ var / libに/ Redisの //行286、IPおよびポート定義のマスターサーバー、メイン構成情報から複製 #replicaof <MASTERIP> <masterport> パスワード@ライン293、定義されたマスターサーバー、マスターコピーから構成情報 #1 masterauth <-masterパスワード> メインの側から見た//ライン308、主端子接続から切り離さ複製は、有データが最新でない場合でも、サービスを提供し続ける示し、要求する手段は、エラーメッセージを返さない レプリカサーブ-STALEデータはい //の端部から線324、読み出し専用 replica-はい読み取り専用 //ライン355、デフォルトはディスクレス(ディスクレス)を使用していない同期 REPL-ディスクレス同期なし //データ転送が終了から実行することができるようにする前に、行367、ディスクレス(なしディスク)モードでは、時間遅延を持っています転送先キュー、デフォルトの5秒 REPL-ディスクレス同期遅延5 メインping間隔の端から端まで送ら// 373行、デフォルトで10秒 #のping-レプリカは、REPL-期間-10 @ライン385は、タイムアウト設定 #60 REPLタイムアウト かどうか、ライン400上の/ *をTCP_NODELAYを有効にします。 ; *場合は、TCPパケットの数が少ないより低速に端末からデータおよび帯域幅を送信するために使用される有効 より多くの帯域幅がより速く、データ送信のために使用されている場合*有効ではありません。 * / REPL-無効-NODELAY™NO-TCP / *ライン413は、バックログのサイズを提供します。バックログは、端末から同期されるデータを格納するためのバッファである場合に関連する損失から端末。 端から再接続時*このように、一般的に完全に同期する必要はありません。より長い時間の端からより大きなバックログが、(比較的)に失われる可能性がある * / #の1メガバイトREPL-バックログサイズ 、まだマスターに接続されていない端から一定期間後、次にバックログを//線426(バッファ地区)、メモリが解放されます。0は3600秒、デフォルトによってNO放出、示していない #3600 REPL-バックログ-TTL より高い優先度の設定、優先順位番号の小さい方の端から//ライン441、。マスター障害が端からより高い優先度に応じて復元することができます。0が設定されている場合、端末は、以下から選択されることはありません レプリカ優先度100 可能な遅延島10ウェブの端から秒または3未満のマスター、受信したライト要求がメインユーザーによって拒否された場合、457から458の行を//します。 レプリカツー分#-Write。3 #MIN-MAX-LAG-10レプリカ //行507、認証パスワードが指定され、デフォルトでは起動しない #1 requirepassがfoobared ながら、接続の最大数はRedisの、//行539 #MaxClientsの10000
第二列69、行88プロテクトモード、デーモン化ライン136、ライン539のMaxClientsの、およびマスターコピーからすべての設定パラメータをバインドしますには特に注意。
(4)単純な使用を.redis
使用するのが最も簡単な:Redisの-CLI -h [IPアドレス] -p [ポート番号]。接続がある場合はローカル、-h、および-pは省略することができます。
1)レイズの文字列操作
キーの命名:あなたはASCII文字を使用することができ、結合の長さが長すぎるではない、より多くのスペースが消費されているキー長く、同じライブラリ(名前空間)には、キー名は一意である必要があり、コピーキー名ならば異なるライブラリ(名前空間)、キーの名前がより繰り返すことができる;自動キーの有効期限、実際にキーの値を変更します。
[ルート@ youxi1〜]#のRedis-CLI 127.0.0.1:6379>システムのCentOS // SETキーを作成 OK 127.0.0.1:6379を>システム//取得キーGET "CentOSの" 127.0.0.1:6379> [終了]を [ルート@ youxi1〜]#systemctl再起動のRedis // リスタート [ルート@ youxi1〜]#のRedis-CLI 127.0.0.1:6379> //は、システムキーがある見ることができますGET "CentOSの" 127.0.0.1:6379> SETに名前を付けます設定するように、「youxi」EX 10は、それがキー値は10秒が存在することを示している// OK 127.0.0.1:6379を>名前// 10秒後に再び表示するには、Get、これは一時的なキーである (ゼロ)
2)あなたが認証をオンにした場合
まず、設定ファイルを変更し、オープン認証
#のVimの/etc/redis.conf [youxi1〜@ルート] ライン507、コメントの除去には123456 // requirepass、および認証パスワードを設定し ます。[root @のyouxi1〜]#systemctl再起動のRedis
このとき、再びのRedisを使用して
[ルート@ youxi1〜]#のRedis-cliを 127.0.0.1:6379は何の証明がない場合にシステムを取得し、エラーを取得します//> (エラー)NOAUTH認証が必要。 127.0.0.1:6379>認証123456 //認定 OK 127.0.0.1:6379 >後に再びシステム//認証、アクセスキー、成功を得る 「CentOSのを」
(5).配置持久化
すべての作業は、メモリに保存されているRedisのデータセットです。Redisのは、データの永続性機能の信頼性を確保するために提供してRedisのクラッシュや電源障害は、すべてのデータが失われる可能性があります。:Redisのは、2つの方法があり永続RDBとのAOFが。
RDB:バイナリデータのファイル形式として格納されている活性化されたデフォルトの永続機構、定期的にディスクにデータを保存し、前カスタマイズポリシーに従って。
AOF:ファイルのみを追加MySQLのバイナリログに似ている、すべてのレコードのRedisのは、運転指令を記述も、追加の永続的なログタイプと呼ばれる、達成するための別の方法を使用して、指定したファイルの末尾に追加IOモードを注文しますメカニズム。各動作は、ファイルの容量が大きくなり、記録コマンドがやや冗長である長い時間と共に、記録されています。しかし、Redisのプロセスは自動的に、将来的にデータを復元するためのワンタイムを達成するために、合併に対応するAOFドキュメント、いくつかの冗長な操作にスキャンすることができます。
RDB構成実際には、既に説明されて、その後、次のように私は、ここに持っているものをコピーします。わずか6点の設定の合計。
/ * * 218 220行、スナップショット保存ポリシー、ディスクに保存された持続性戦略の *最初の数秒で、時間の単位であり、2番目の数字は、キー変更の数であり、 *最初の例で、 1つのキーの変更は、少なくとも900秒以内に、その後、スナップショット(永続的な)を行う *二つ目は300秒以内にキーの変更に少なくとも10回は、スナップショットを実行します(永続的な)ということである *すべての条件が関係を並置されています、異なるキーがに基づいてルールを変更使用することを選択 * / 保存900 1は、 保存300 10 60万保存 スナップショットバックアップ中に// 235行は、イベント中にエラーが停止され、デフォルトはyesあなたがすることができます 停止-書き込み・オン・bgsaveはい-error //ライン241は、RDBは、圧縮ファイルかどうかを指定します。はい圧縮はCPUリソースを消費することを意味します rdbcompressionはい 検出するために、RDBファイルのチェックサムを行うかどうか、/ * 250行を。 *このファイルはRDBはRedisのは、起動時に、Redisの中にパリティ情報を生成するか、RDBは、パリティ情報かどうかを再度チェックファイルをロードします生成され、ファイルのチェックサムかどうかを確認するために、スタートアップRedisのRDBファイルでロードされた定義します。 *それが検出されたときに、あなたが時間を消費する場合は、それはときRedisのスロースタートにつながるが、RDBファイルエラーかどうかを判断することができます。 * / Rdbchecksumはい //ライン253、RDBファイル名 dbfilename dump.rdb //ライン263、RDBファイル・ストレージ・パス ディレクトリは/ var / libに/ Redisの
AOFの構成は、必要に応じて、ライン679上で開始し、自分の表情。