ホームページ >バックエンド開発 >PHPチュートリアル >Redis キャッシュを最初から始める

Redis キャッシュを最初から始める

不言
不言オリジナル
2018-06-04 09:48:581761ブラウズ

この記事では、Redis キャッシュをゼロから始める方法を主に紹介します。これは、必要な友人に参考にしていただけるようになります。

  1. オープン ソース

  2. ANSI

C 言語を使用して書かれ、ネットワーク、メモリベースおよび永続的なログ タイプ、Key-Valueデータベースをサポートし、複数の言語で APIを提供します。 2010315日から、Redisの開発作業はVMwareによってホストされています。 20135月から、Redisの開発はPivotalによって後援されています。 redis は、Key-Value

ストレージ システムです。 Memcachedと同様に、string(string)list(linked list)など、比較的多くの保存されたvalueタイプをサポートします set(set)zset(sorted set --ordered set)hash(ハッシュ型)。これらのデータ型はすべて、push/popadd/remove、および交差、結合、差分などの豊富な操作をサポートしており、これらの操作はすべてアトミックです。これに基づいて、redis はさまざまな並べ替え方法をサポートしています。 memcachedと同様に、効率を確保するために、データはメモリにキャッシュされます。違いは、redisが定期的に更新されたデータをディスクに書き込むか、追加のレコードファイルに変更操作を書き込むことと、これに基づいてマスタースレーブ(マスタースレーブ)がSyncを実装していることです。

Redis は、高性能の key-value データベースです。 redis の出現により、memcached などの key/value ストレージの不足が大幅に補われ、 場合によってはリレーショナル データベースに対して非常に優れた補完的な役割を果たすことができます。 JavaC/C++C#PHPJavaScript オブジェクト-C PythonRubyErlangなどのクライアントは非常に使いやすいです。 [1]Redis

はマスター/スレーブ同期をサポートしています。データはマスター サーバーから任意の数のスレーブ サーバーに同期でき、スレーブ サーバーは他のスレーブ サーバーに関連付けられたマスター サーバーになることもできます。これにより、

Redis が単一レベルのツリー レプリケーションを実行できるようになります。保存すると、意図的または非意図的にデータが書き込まれる可能性があります。パブリッシュ /サブスクリプション メカニズムが完全に実装されているため、スレーブ データベースがどこにいてもツリーを同期すると、チャネルにサブスクライブして、マスター サーバーの完全なメッセージ パブリッシング レコードを受信できます。同期は、読み取り操作のスケーラビリティとデータ冗長性に役立ちます。 redis

の公式Webサイトのアドレスは、

redis.ioですので非常に覚えやすいです。 (具体的に調べてみたところ、ドメイン名サフィックスiobritish Indian Ocean Territory、つまりイギリス領インド洋準州に属していることが分かりました)現在、

Vmware

は、redis プロジェクトの開発とメンテナンスに資金を提供しています。 2. Redisのインストールインストールファイルを解凍します

解凍後

makeを実行してコンパイルします

Compile OK, src ディレクトリ


Redis-cli ターミナル操作

Redis サービスを開始する Redis-server ファイル

Redis-ベンチマーク ストレス テスト ファイル

Redis-check-xx 検査バックアップ ファイル スクリプト

Redis 実行ディレクトリを作成し、両方をコピーします過去のファイル

過去の設定ファイルをコピー

3. Redis サービスの開始

フロントエンドで Redis サービスの開始に成功した兆候

./ redisサーバー

現在開始されているものはオフにできないため、修正する必要があります。

サービスを停止します Ctrl+z

最初に Redis サービスを使用します

バックグラウンドを使用して Redis サービスを開始します

vim redis.conf

それを [はい] に変更して保存し、バックグラウンドで Redis を開始するように設定します

もう一度開始します

まだフロントエンドが開始されていることがわかりました

開始したら、一緒に開始するための構成ファイルを持ってきてください

View Redisプロセスをダウンロードして

、redisが開始されていることを確認してください

4

を使用して3つの変数を設定するだけです。これらの3つの変数はすべてメモリに保存されます

読み方は?

ゲット!

5. 具体的な操作

1. キー操作

Redisでは、名前の構成要素として「n」とスペースを除く他の内容をキーの名前部分として使用できます。名前の長さは関係ありません

つまり、変数名

コード関数それが存在するかどうかです。 指定されたキーを削除する指定されたキーの値の型を返す戻る指定されたパターンに一致するすべてのキー名前を変更します現在のデータベース内のキーの数を返しますキーの有効期限を指定しますTtlキーキーの有効期限を秒数で返します2. 文字列型の操作

Del key1 key2….

Type key

oldkeyの名前を変更しますnewkey

Dbsize

重要な秒数を期限切れにする

データベースインデックスを選択します

キーを移動 db-index

キーを現在のデータベースから指定したデータベースに移動

Flushdb

現在のデータベース内のすべてのキーを削除

Flushall

すべてのデータベースのすべてのキーを削除します

その使用例を次に示します
文字列は、Redis の最も基本的なタイプです


Redis 文字列には、次のような任意のデータを含めることができます。 jpg画像やシリアル化されたオブジェクト

単一値の上限は1Gバイトです

コード

関数

キーの値を設定

キーを文字列型の値に設定します

Mset key1 value1…keyN valueN

複数のキーの値を一度に設定します

Mget key1 key2 … keyN

一度に複数のキーの値

Incrキー

キーの正しい値 ++操作を行う

Decrキー

上記と同じ - 操作

Incrby key integer

incr に指定した値を加えたものと同じ

Decrby key integer

Decr から指定した値を引いたものと同じ

Append キー値

値を追加指定されたキーの文字列に

サブストキー開始終了

インターセプトされたキーの文字列値を返します

3. リスト型の紹介と使用法

リスト型は実際には二重リンクリストです

最新の上位 10 人のユーザーをクエリしたい場合は、

それらを 1 つずつチェックする必要があります。リソースが多すぎます

リスト リンク リストの例図:

リスト リンク リストを通じてシステムにログインした最新 5 人のユーザーの情報を保存します

新しいユーザーが入ってきて、古いユーザーは追い出されます

方法リンクリストを操作しますか?

を追加します

Code

Function

Lpushキー文字列

対応するキーの先頭に文字列要素を追加しますリスト

Rpop key

はリストの末尾から要素を削除し、削除された要素を返します

Lien keyはリストの長さに応じたkey

を返します。存在しない場合は0を返します。対応するキーの型がリストでない場合はエラーを返します

Rpushキー文字列

上記と同様に

Lpop key

リストの先頭から要素を削除し、削除された要素を返します

Ltrim key start end

リストをインターセプトして、指定された範囲内の要素を保持します


4 . セットコレクション型

Redisのセットは文字列型の順序付けされていないコレクションです。

セット要素には最大 (2 の 32 乗 - 1) 個の要素を含めることができます

各セット内の各要素は繰り返すことはできません

コード

キーメンバーを追加

キーに対応するセットセットに文字列要素を追加し、成功1を返します

Sremキーメンバー

キー要素に対応するセットから指定されたものを削除します、正常に 1 を返します

p1 p2 メンバーを移動

p1 の対応するセットからメンバーを削除し、p2 の対応するセットに追加します

Scard key

セット内の要素の数を返します

Sismember key member

メンバーがセット内に存在するかどうかを判断します

Sinter key1 key2。 。 。

指定されたすべてのキーの交差を返します

Sunion key1 key2

指定されたすべてのキーの和集合を返します

iffキー1 キー2..

指定されたすべてのキーの差分セットを返します

Smembers key

結果は順序付けされていません


5 つの要素を持つキーがあります

次に Linken が追加されます

5. SortSet ソートセット型の操作

set と同様に、sorted set も文字列要素のコレクションです

さらに、各要素には重みが関連付けられています

重みを通じて、セット内の要素を順番に取得できます

ケース:

ソートセットを使用して、学習用に最も人気のある投稿の上位 5 つを取得します

ソートされたセットの各要素は値と重みの組み合わせです

上記と同じで、戻りは逆の順序ですReturnsセット内の要素の数指定された要素に対応するスコアを返しますランク付けされた要素を削除しますセット内の指定されたポイント間隔

コード

関数

Zaddキースコアメンバー

に要素を追加コレクション、要素がコレクション内に存在する場合、対応するスコアを更新します

Zremキーメンバー

指定された要素を削除、1は成功、0は存在しません

Zincrby key incr member

Follow incr 振幅が対応するメンバーのスコア値を増加させてスコア値を返す

Zrank key member

ランキングを返す)セット内の指定された要素の要素は、スコアによって小さいものから大きいものへと並べ替えられます

Irange 操作と同様に、指定された範囲内の要素。セットから返され、順序付けられた結果が返されます

Zrevrange key start end

Zcard key

Zスコアキー要素

Zremrangebyrank key min max


6. スナップショットの永続性

1 つのキーの変更が 900 秒で保存 (スナップショット)

10 のキーの変更が 300 秒で保存 (スナップショット)

10,000 のキーの変更が 1 分で保存 (スナップショット)

この種の制御の利点:

データの変更頻度が非常に高く、バックアップの頻度も高くなります。

データの変更頻度が低く、バックアップの頻度も低くなります。 OF 永続性

本質: put ユーザーが実行したすべての「書き込み」コマンド (追加、削除、変更) はファイルにバックアップされます。復元する場合は、特定の「書き込み」コマンドを実行します

AOF 永続性をオンにすると、redis がクリアされます。内部データ

AOF永続性をオンにしています

設定ファイルが変更され、サービスが再起動されました


redis

プロセスを表示します: Ps -A | grep redis


-9 プロセスを強制終了します

新しいプロセスを開始します

Aofは、書き込みコマンドを受信するたびに、強制的に直ちにディスクに書き込みます。非常に遅いですが、完全な永続性を維持できます

毎秒ディスクに 1 回書き込みが行われるため、パフォーマンスと永続性の間で適切な妥協が行われ、推奨されます

最高のパフォーマンスを得るために OS に完全に依存することはありません。

8. マスタースレーブモード

各Redisサーバーの負荷を軽減するために、複数のRedisサーバーをセットアップしてマスタースレーブモードで使用することができます

1つのサーバーは「書き込み」をロードします

他のサーバーは「読み取り」をロードします

マスターサーバーはスレーブサーバーと自動的に同期します

IPアドレスとポート番号を変更します

以上がRedis キャッシュを最初から始めるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。