Redis-Base-1
43285 ワード
:わかりやすく紹介されているような気がするのでおすすめです
What is Redis?
RedisはSalvatore Sanfilippoが開発した、オープンソース、効率的なメモリベースのキー値キャッシュサービス、いわゆるNoSQLデータベースです.strings,hashes,lists,sets,sorted setsなどの構造のデータを格納できます.
キー値格納の本質は、データを格納することができ、その後、特定のキー名を呼び出し、前に挿入されたデータを取得することができる.
Usage of Redis
Salvatore Sanfilippo(creator of Redis)は、RedisがRDBMSデータベースの代わりに使用できると述べたが、今考えると、不可能なことは何もないが、それは依然として不適切な考えだ.Redisは,データのトランザクション操作や,プライマリ・スレーブ・サービスのデータ同期においてまだ十分ではないためである.
以下はRedisが使用できる場所ですが、まだ多くの場所で使用できます.にはmemcachedと同様のキャッシュ機能があり、様々なデータ構造をサポートしています.豊富なストレージ方式により、多くのArrayの接続が省け、パフォーマンスが向上します. Leaderboards or related problems. Counting stuff. Real time analysis. Deletion and filtering. あなたのトップページに最新のプロジェクト が表示されます.
Aim of this Article
文章はあなたにRedisの文法の知識を展示するのではありませんて、PHPの中でどのようにRedisを使います
Install Redis
RedisはWindowsやLinuxなど簡単にインストールできます
Install Redis on Linux
Redisのインストール:
Note:2.8.19最新バージョンに置き換えてください
Redisのサービス起動は、Redisのクライアント操作のためのredis-cliを含むインストールディレクトリの下にあり、次はRedisサービスの起動である.
Install on Windows
紹介を見合わせる
Install Predis a Redis Client for PHP
PredisはRedisのクライアントです.それはコミュニティに支持されて、GitHubの上で直接ダウンロードすることができて、下図はGitHubクライアントあるいはGitソフトウェアをインストールして、ダウンロードを行います
Connecting to Redis
まず、require Redisの自動ロード関数です.その後try文ブロックを使用してラップします.以下に、ローカルおよびリモートサービスに接続するアドレスを示します.仮想マシンにインストールされているサービスは、リモートの構成に従ってください.hostはifconfigを使用して表示され、デフォルトのポートは6379です.
Redisサーバへの接続に成功しました.すぐに勉強を始めます.
Redis Datatypes
Redisは豊富なデータ型を使用しており、開発者がより意味のあるデータ構造を格納したり、実際のデータに近づいたりして、検索をより効率的にすることができます.以下に、Redisがサポートするデータ型を示します. String:memcache に類似する文字列 List:1次元配列に似ています.push,pop,shift and unshiftなどの方法 を用いることができる. Hash:Mapは、複数のキー値ペアを格納するために使用される. Set:無秩序、重複しない Sorted Set:秩序正しく、重複しない.どのように秩序正しく保存できるかを知りたいに違いありません.保存するときにscore値を指定して、最小から最大まで、等しくすることができます.
Getters and Setters
Redisにおいて最も重要な命令は
Increments and Decrements
もちろん、
Working with Lists
ここには基本的な命令があります LPUSH:リストの先頭 にデータを挿入 RPUSH:リストの末尾 にデータを挿入 LPOP:リストの先頭の要素を除去し、その要素 を返す. RPOP:リスト末尾の要素を除去し、その要素 を返す. LLEN:listの長さを得る LRANGE:リスト内のすべての要素 を取得
Simple List Usage:
Working with Hashes
hashはキー値対の集合であり、一対多の関係に類似する.一般的なコマンドは次のとおりです. HSET:key-value値 を設定 HGET:hash中のkeyの値 を取得する. HGETALL:hashのすべての値 を返します. HMSET:hash複数の値を設定 HDEL:hashから値を削除 HINCRBY:hashの要素に指定値 を追加します.
Working with Sets
set関連コマンド:
SADD:setにN個のメンバー、配列または単一要素を追加する
SREM:配列から単一または1つのメンバーを除去する
SISMEMBER:メンバーが存在するか否かを判断する
SMEMBERS:setのすべてのメンバーを取得する
Set Expiry and Persistence
Resiaはメモリに格納されているため、私が前に説明したノードがセッションを作成した文章のように、永続的に格納されていない可能性があります.ここで有効期限を設定できる方法は、
EXPIRE:秒単位で有効期限を設定
EXPIREAT:どれくらい後に削除され、秒単位
TTL:期限切れまであとどのくらい残っていますか
PERSIST:キーを永続的に保存
CONCLUSION
後悔の中で・・・30分もかかって、こんなレベルのない文章を翻訳しても、自分がどう思っているのか分からない.考えれば考えるほど間違っていますが、翻訳した以上、翻訳が終わってしまいます.中には翻訳が間違っているところや、コードが間違っているところがあるかもしれません.それは問題ではありません.かすめてください.
Future of Redis
Redis is a better replacement for memcached, as it is faster, scales better (supports master-slave replication), supports datatypes that many (Facebook, Twitter, Instagram) have dropped memcached for Redis. Redis is open source and many brilliant programmers from the open-source community have contributed patches.
What is Redis?
RedisはSalvatore Sanfilippoが開発した、オープンソース、効率的なメモリベースのキー値キャッシュサービス、いわゆるNoSQLデータベースです.strings,hashes,lists,sets,sorted setsなどの構造のデータを格納できます.
キー値格納の本質は、データを格納することができ、その後、特定のキー名を呼び出し、前に挿入されたデータを取得することができる.
Usage of Redis
Salvatore Sanfilippo(creator of Redis)は、RedisがRDBMSデータベースの代わりに使用できると述べたが、今考えると、不可能なことは何もないが、それは依然として不適切な考えだ.Redisは,データのトランザクション操作や,プライマリ・スレーブ・サービスのデータ同期においてまだ十分ではないためである.
以下はRedisが使用できる場所ですが、まだ多くの場所で使用できます.
Aim of this Article
文章はあなたにRedisの文法の知識を展示するのではありませんて、PHPの中でどのようにRedisを使います
Install Redis
RedisはWindowsやLinuxなど簡単にインストールできます
Install Redis on Linux
Redisのインストール:
$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make
Note:2.8.19最新バージョンに置き換えてください
Redisのサービス起動は、Redisのクライアント操作のためのredis-cliを含むインストールディレクトリの下にあり、次はRedisサービスの起動である.
$ src/redis-server
Install on Windows
紹介を見合わせる
Install Predis a Redis Client for PHP
PredisはRedisのクライアントです.それはコミュニティに支持されて、GitHubの上で直接ダウンロードすることができて、下図はGitHubクライアントあるいはGitソフトウェアをインストールして、ダウンロードを行います
$ git clone git://github.com/nrk/predis.git
Connecting to Redis
まず、require Redisの自動ロード関数です.その後try文ブロックを使用してラップします.以下に、ローカルおよびリモートサービスに接続するアドレスを示します.仮想マシンにインストールされているサービスは、リモートの構成に従ってください.hostはifconfigを使用して表示され、デフォルトのポートは6379です.
require "predis/autoload.php";
Predis\Autoloader::register();
try {
$redis = new PredisClient();
// This connection is for a remote server
/*
$redis = new PredisClient(array(
"scheme" => "tcp",
"host" => "153.202.124.2",
"port" => 6379
));
*/
}
catch (Exception $e) {
die($e->getMessage());
}
Redisサーバへの接続に成功しました.すぐに勉強を始めます.
Redis Datatypes
Redisは豊富なデータ型を使用しており、開発者がより意味のあるデータ構造を格納したり、実際のデータに近づいたりして、検索をより効率的にすることができます.以下に、Redisがサポートするデータ型を示します.
Getters and Setters
Redisにおいて最も重要な命令は
SET
,GET
and EXISTS
である可能性がある.これらのコマンドは、Redisサーバから格納、取得、チェックするために使用されます.Redisの操作は命令が表す字面の意味と同じである.
// sets message to contian "Hello world"
$redis->set(';message';, ';Hello world';);
// gets the value of message
$value = $redis->get('message');
// Hello world
print($value);
echo ($redis->exists('message')) ? "Oui" : "please populate the message key";
Increments and Decrements
INCR
and DECR
コマンドは、値を増加または減少させるために使用される
$redis->set("counter", 0);
$redis->incr("counter"); // 1
$redis->incr("counter"); // 2
$redis->decr("counter"); // 1
もちろん、
INCRBY
and DECRBY
コマンドを使用して、追加された具体的な値を指定することもできます.
$redis->set("counter", 0);
$redis->incrby("counter", 15); // 15
$redis->incrby("counter", 5); // 20
$redis->decrby("counter", 10); // 10
Working with Lists
ここには基本的な命令があります
Simple List Usage:
$redis->rpush("languages", "french"); // [french]
$redis->rpush("languages", "arabic"); // [french, arabic]
$redis->lpush("languages", "english"); // [english, french, arabic]
$redis->lpush("languages", "swedish"); // [swedish, english, french, arabic]
$redis->lpop("languages"); // [english, french, arabic]
$redis->rpop("languages"); // [english, french]
$redis->llen("languages"); // 2
$redis->lrange("languages", 0, -1); // returns all elements
$redis->lrange("languages", 0, 1); // [english, french]
Working with Hashes
hashはキー値対の集合であり、一対多の関係に類似する.一般的なコマンドは次のとおりです.
$key = 'linus torvalds';;
$redis->hset($key, 'age';, 44);
$redis->hset($key, 'country';, ';finland';);
$redis->hset($key, 'occupation', 'software engineer');
$redis->hset($key, 'reknown', 'linux kernel');
$redis->hset($key, 'to delete', 'i will be deleted');
$redis->hget($key, 'age'); // 44
$redis->hget($key, 'country')); // Finland
$redis->del($key, 'to delete');
$redis->hincrby($key, 'age', 20); // 64
$redis->hmset($key, [
'age' => 44,
'country' => 'finland',
'occupation' => 'software engineer',
'reknown' => 'linux kernel',
]);
// finally
$data = $redis->hgetall($key);
print_r($data); // returns all key-value that belongs to the hash
/*
[
'age' => 44,
'country' => 'finland',
'occupation' => 'software engineer',
'reknown' => 'linux kernel',
]
*/
Working with Sets
set関連コマンド:
SADD:setにN個のメンバー、配列または単一要素を追加する
SREM:配列から単一または1つのメンバーを除去する
SISMEMBER:メンバーが存在するか否かを判断する
SMEMBERS:setのすべてのメンバーを取得する
$key = "countries";
$redis->sadd($key, ';china';);
$redis->sadd($key, ['england', 'france', 'germany']);
$redis->sadd($key, 'china'); // this entry is ignored
$redis->srem($key, ['england', 'china']);
$redis->sismember($key, 'england'); // false
$redis->smembers($key); // ['france', 'germany']
Set Expiry and Persistence
Resiaはメモリに格納されているため、私が前に説明したノードがセッションを作成した文章のように、永続的に格納されていない可能性があります.ここで有効期限を設定できる方法は、
EXPIRE
、EXPIREAT
、TTL
、PERSIST
です.EXPIRE:秒単位で有効期限を設定
EXPIREAT:どれくらい後に削除され、秒単位
TTL:期限切れまであとどのくらい残っていますか
PERSIST:キーを永続的に保存
$key = "expire in 1 hour";
$redis->expire($key, 3600); // expires in 1 hour
$redis->expireat($key, time() + 3600); // expires in 1 hour
sleep(600); // don't try this, just an illustration for time spent
$redis->ttl($key); // 3000, ergo expires in 50 minutes
$redis->persist($key); // this will never expire.
CONCLUSION
後悔の中で・・・30分もかかって、こんなレベルのない文章を翻訳しても、自分がどう思っているのか分からない.考えれば考えるほど間違っていますが、翻訳した以上、翻訳が終わってしまいます.中には翻訳が間違っているところや、コードが間違っているところがあるかもしれません.それは問題ではありません.かすめてください.
Future of Redis
Redis is a better replacement for memcached, as it is faster, scales better (supports master-slave replication), supports datatypes that many (Facebook, Twitter, Instagram) have dropped memcached for Redis. Redis is open source and many brilliant programmers from the open-source community have contributed patches.