ホームページ > バックエンド開発 > PHPチュートリアル > Predisを使用したPHPのRedisの紹介

Predisを使用したPHPのRedisの紹介

Christopher Nolan
リリース: 2025-02-27 09:08:11
オリジナル
430 人が閲覧しました

An Introduction to Redis in PHP using Predis

コアポイント

  • Redisは、組み込みのデータ型のおかげで、単純なキー価値ストレージ以上のものを備えた人気のあるオープンソースデータ構造サーバーです。大企業では広く使用されており、セッションハンドラーとして、またはオンラインチャットまたはライブ予約システムの作成に使用できます。
  • RedisとMemcacheは基本操作の観点から同様に機能しますが、Redisはメモリとディスクの持続性、原子コマンドとトランザクション、サーバー側のデータ構造などのより多くの機能を提供します。
  • Predisは、PHP開発者がPHPコードを使用してRedisと対話できる柔軟で完全に機能的なPHP Redisクライアントライブラリです。トランザクション、パイプライン、クラスターなど、さまざまなRedis機能をサポートしています。
  • Redisコマンドには、セット、GET、存在(一時情報の保存とチェック用)、増分とDECR(カウンターの維持用)、HSET、HGET、HINCRBY、HDEL(ハッシュデータ型の処理)、および期限切れ、有効期限、TTL、および持続(データの持続性の処理のため)が含まれます(データの持続性を処理します)。

Redisは、データ型が組み込まれているため、単純なキー価値ストレージよりもはるかに機能するメモリデータセットを備えたオープンソースデータ構造サーバーです。 2009年にSalvatore Sanfilippoによって発売され、その人気のために急速に成長しました(後にSanfilippoをフルタイムで雇って、Githus、Disqus、Digg、Blizzard、Instagram、その他の大企業を参照してください。 Redisをセッションハンドラーとして使用できます。これは、ロードバランサーの背後にあるマルチサーバーアーキテクチャを使用する場合に特に便利です。 Redisにはパブリッシュ/サブスクライブシステムもあります。これは、オンラインチャットまたはライブサブスクリプションシステムの作成に最適です。 Redisとそのすべてのコマンドに関するドキュメントと詳細については、プロジェクトのWebサイトRedis.ioをご覧ください。どのRedisまたはMemcacheが優れているかについては多くの議論がありますが、ベンチマークが示すように、彼らは基本的な操作に関してほぼ同じパフォーマンスを発揮します。 Redisには、メモリとディスクの永続性、原子コマンド、トランザクションなど、Memcacheよりも多くの機能があり、すべての変更をディスクにログする代わりに、代わりにサーバー側のデータ構造を使用します。この記事では、Predisライブラリを使用して、Redisが提供する基本的で強力なコマンドのいくつかについて学びます。

簡単にインストールできます

Redisは簡単にインストールでき、簡単なインストール手順が製品のダウンロードページに掲載されています。私の経験では、Ubuntuを実行している場合、TCLがインストールされていない場合にエラーが発生します(Sudo apt-getインストールTCLを実行します)。 Redisをインストールした後、サーバーを実行できます:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Redisクライアントライブラリは、Redis Webサイトにリストされている多くの言語で利用でき、各言語は通常複数の言語で利用できます。 PHPには5つあります。この記事では、Predisライブラリを使用しますが、PHPモジュールとしてコンパイルおよびインストールされているPhpredisについても知りたいと思うかもしれません。私と同じようにマシンにGitをインストールした場合、Predisリポジトリをクローンするだけです。それ以外の場合は、zipアーカイブをダウンロードして解凍する必要があります。

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
すべてをテストするには、Predisを使用して実行中のRedisサーバーに正常に接続できるかどうかをテストするためにTest.phpファイルを作成します。

実行すると、「Redisに正常に接続されている」というメッセージが表示されます。
gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

redis

の使用 このセクションでは、Redisが提供する一般的に使用されるコマンドのほとんどの概要を説明します。 Memcacheにはほとんどのコマンドに相当するものがあるため、Memcacheに精通している場合、このリストはおなじみに見えます。

設定、取得、存在する

Redisで最も一般的に使用されるコマンドは、設定、取得、および存在します。これらのコマンドを使用して、通常はキー価値のある方法で複数回アクセスされる一時情報を保存および確認できます。たとえば、

set()メソッドは、この例で値を「hello_world」に設定し、値は「php!」です。 get()メソッドはキーの値を取得し、この場合は「hello_world」です。 Exists()メソッドは、提供されたキーがRedisストアにあるかどうかを報告します。キーは、英数字とアンダースコアに限定されません。以下も有効です:

<?php
require "predis/autoload.php";
PredisAutoloader::register();

// 由于我们连接到默认设置localhost
// 和6379端口,因此无需额外的
// 配置。如果不是,则可以将
// 方案、主机和端口指定为数组
// 传递给构造函数。
try {
    $redis = new Predis\Client();
/*
    $redis = new Predis\Client(array(
        "scheme" => "tcp",
        "host" => "127.0.0.1",
        "port" => 6379));
*/
    echo "Successfully connected to Redis";
}
catch (Exception $e) {
    echo "Couldn't connected to Redis";
    echo $e->getMessage();
}
ログイン後にコピー

incre(incrby)and decro(decrby)
<?php
$redis->set("hello_world", "Hi from php!");
$value = $redis->get("hello_world");
var_dump($value);

echo ($redis->exists("Santa Claus")) ? "true" : "false";
ログイン後にコピー

増分とDECRコマンドは、値を増分および減少させるために使用され、カウンターを維持する良い方法です。増分と減少/値を1倍にすることもできます。例は次のとおりです。

redisデータ型
<?php
$redis->set("I 2 love Php!", "Also Redis now!");
$value = $redis->get("I 2 love Php!");
ログイン後にコピー

前述したように、Redisにはデータ型が組み込まれています。 RedisのようなNOSQLキー価値ストレージシステムにデータ型を持っているのは奇妙だと思うかもしれませんが、これは開発者が情報をより効率的に整理し、特定のアクションを実行するのに役立ちます。これは通常、データを入力すると高速です。 Redisのデータ型は次のとおりです

文字列 - Redisで使用される基本的なデータ型。そこから、少数の文字をファイル全体の内容に保存できます。

リスト - 要素が挿入される順序で配置された文字列の簡単なリスト。リストのヘッドとテールから要素を追加および削除できるため、このデータ型を使用してキューを実装できます。
  • ハッシュ - 文字列キーと文字列値のマップ。これにより、オブジェクトを表すことができます(レベルの1レベルの深さJSONオブジェクトと見なすことができます)。
  • コレクション - メンバーの存在を追加、削除、テストできる文字列の順序付けられていないコレクション。唯一の制約は、複製メンバーを許可しないことです。
  • セットの並べ替え - 収集データ型の特別なケース。違いは、各メンバーには、セットを最小スコアから最大スコアに並べ替えるために使用される関連スコアがあることです。
  • これまでのところ、文字列のみを実証しましたが、他のデータ型からデータを等しく使用できるコマンドがいくつかあります。
hset、hget and hgetall、hincrbyとhdel

これらのコマンドは、redisのハッシュデータ型を処理するために使用されます。

  • hset-ハッシュオブジェクトのキーの値を設定します。
  • hget-ハッシュオブジェクトのキーの値を取得します。
  • hincrby - 指定された値を使用して、ハッシュオブジェクトのキーの値を調整します。
  • hdel-オブジェクトからキーを削除します。
  • hgetall-オブジェクトのすべてのキーとデータを取得します。

ここにその使用法を示す例があります:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

概要

この記事では、Redisコマンドの短いリストのみをカバーしていますが、Redis Webサイトでコマンドの完全なリストを表示できます。実際、RedisはMemcacheの代替だけではありません。 Redisは続き、成長するコミュニティがあり、すべての主要な言語をサポートし、マスタースレーブレプリケーションを通じて持続性と高可用性を提供します。 Reditはオープンソースです。そのため、C言語の専門家である場合は、GitHubからソースコードをフォークして貢献者になることができます。プロジェクトWebサイト以上のことを学びたい場合は、2つの優れたRedis Book、Redis CookbookとRedis:The Definitive Guideをチェックすることを検討することをお勧めします。

php のプレディスとのレディスに関するよくある質問

  • PHPでPredisとRedisを使用する主な目的は何ですか?
Predisは、柔軟で完全に機能的なPHP Redisクライアントライブラリです。これにより、PHP開発者はPHPコードを使用してRedisと対話できるようになり、PHPアプリケーションでRedisを使いやすくなります。 Predisは、Redisを処理するためのシンプルで直感的なAPIを提供し、トランザクション、パイプライン、クラスターなど、さまざまなRedis関数をサポートします。 Predisを使用することにより、PHP開発者は、Redisサーバーと直接対話するという複雑さに対処することなく、アプリケーションのRedisの力を利用できます。

  • PHPプロジェクトにPredisをインストールする方法は?
Predisは、Composer(PHPの依存関係管理ツール)を使用してPHPプロジェクトに簡単にインストールできます。プロジェクトのルートディレクトリで次のコマンドを実行して、Predisをインストールできます:

。このコマンドは、Predisとその依存関係の最新バージョンをプロジェクトにダウンロードしてインストールします。 composer require predis/predis

  • Predisを使用してRedisサーバーに接続するにはどうすればよいですか?
Predisを使用してRedisサーバーに接続するには、Predisの新しいインスタンスを作成し、接続パラメーターをコンストラクターに渡す必要があります。接続パラメーターは、R​​edis Server URIを表す文字列または接続オプションを含む連想配列です。例は次のとおりです。

この例では、クライアントはLocalHostポート6379で実行されているRedisサーバーに接続します。
gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

    Predisを使用してRedisコマンドを実行するにはどうすればよいですか?
  • Predisは、すべてのRedisコマンドを実行する方法を提供します。これらのメソッドは、コマンドパラメーターをパラメーターとして受け入れる対応するRedisコマンドにちなんで命名されます。たとえば、Redisでキー価値ペアを設定するには、次のように設定された方法を使用できます。

キーの値を取得するには、GETメソッドを使用できます。

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  • プレディスのエラーを処理する方法は?

redisコマンドが失敗した場合、predisは例外をスローします。これらの例外は、PreconseServerExceptionクラスまたはそのサブクラスのインスタンスです。これらの例外をキャッチし、コードのエラーを処理できます。例は次のとおりです。

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
この例では、setコマンドが失敗した場合、キャッチブロックが実行され、エラーメッセージが印刷されます。

(他の質問への回答は、言葉遣いがわずかに調整されていることを除いて、以前の出力に似ています。

以上がPredisを使用したPHPのRedisの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート