コアポイント
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
実行すると、「Redisに正常に接続されている」というメッセージが表示されます。
gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
の使用 このセクションでは、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(); }
<?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で使用される基本的なデータ型。そこから、少数の文字をファイル全体の内容に保存できます。リスト - 要素が挿入される順序で配置された文字列の簡単なリスト。リストのヘッドとテールから要素を追加および削除できるため、このデータ型を使用してキューを実装できます。
これらのコマンドは、redisのハッシュデータ型を処理するために使用されます。
ここにその使用法を示す例があります:
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 のプレディスとのレディスに関するよくある質問
。このコマンドは、Predisとその依存関係の最新バージョンをプロジェクトにダウンロードしてインストールします。 composer require predis/predis
この例では、クライアントはLocalHostポート6379で実行されているRedisサーバーに接続します。
gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
キーの値を取得するには、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
(他の質問への回答は、言葉遣いがわずかに調整されていることを除いて、以前の出力に似ています。
以上がPredisを使用したPHPのRedisの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。