Hatena::ブログ(Diary)

yk5656 diary

記事一覧: Linux | Ansible | Swift | Ruby | PHP | JavaScript | MySQL | Git | Vim

2014-09-23(火)

PHPでRedisを使ってみる

CentOSにRedisをインストールしてみる
の続き

PHPでRedisを使ってみる。


前準備

ApacheとPHPが入ってなければインストールしておく。

$ sudo yum -y install httpd php

起動して、自動起動の設定もして、

$ sudo service httpd start
$ sudo chkconfig httpd on

パーミッションを変えておく。

$ sudo chown hoge:hoge /var/www/html/

phpredis

PECLのredisのライブラリをインストールする。

$ sudo yum -y install php-pecl-redis --enablerepo=epel

Apacheを再起動して反映。

$ sudo service httpd restart

ライブラリの使い方は下記のページを見るのがよさそう。

nicolasff/phpredis
https://github.com/nicolasff/phpredis#classes-and-methods

確認

$ cd /var/www/html/
$ vi index.php
<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// PINGで確認する
echo $redis->ping();

ブラウザからアクセスすると、「+PONG」と表示される。
f:id:yk5656:20140928164013p:image:w360

String型

<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// クリアしてまっさらにしておく
$redis->delete('key');

// 値をセットする
$redis->set('key', 'value');

// 値を取得する
$value = $redis->get('key');

// 表示
echo $value;

ブラウザからアクセスすると下記のように表示される。
f:id:yk5656:20140928164012p:image:w360

Hash型

<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// クリアしてまっさらにしておく
$redis->delete('key');

// 値をセットする
$redis->hSet('key', 'key1', 111);
$redis->hSet('key', 'key2', 222);

// 値を取得する
$value1 = $redis->hGet('key', 'key1');
$value2 = $redis->hGet('key', 'key2');
$all = $redis->hGetAll('key');

// 表示
echo $value1 . '<br>';
echo $value2 . '<br>';
print_r($all);

ブラウザからアクセスすると下記のように表示される。
f:id:yk5656:20140928164008p:image:w360

List型

<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// クリアしてまっさらにしておく
$redis->delete('key');

// 値をプッシュする
$redis->rPush('key', '111');
$redis->rPush('key', '222');
$redis->lPush('key', '333');

// 値を取得する
$value = $redis->lRange('key', 0, -1);

// 表示
print_r($value);

ブラウザからアクセスすると下記のように表示される。
f:id:yk5656:20140928164011p:image:w360

Set型

<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// クリアしてまっさらにしておく
$redis->delete('key1');
$redis->delete('key2');

// 値を追加する
$redis->sAdd('key1' , '111');
$redis->sAdd('key1' , '222');
$redis->sAdd('key2' , '222');
$redis->sAdd('key2' , '333');

// 和・積・差を取得する
$union = $redis->sUnion('key1', 'key2');
$inter = $redis->sInter('key1', 'key2');
$diff  = $redis->sDiff('key1', 'key2');

// 表示
print_r($union); echo '<br>';
print_r($inter); echo '<br>';
print_r($diff);  echo '<br>';

ブラウザからアクセスすると下記のように表示される。
f:id:yk5656:20140928164010p:image:w360

Sorted Set型

<?php
$redis = new Redis();
$redis->connect("127.0.0.1",6379);

// クリアしてまっさらにしておく
$redis->delete('key');

// スコアと値を追加する
$redis->zAdd('key' , 20, 'aaa');
$redis->zAdd('key' , 40, 'bbb');
$redis->zAdd('key' , 10, 'ccc');
$redis->zAdd('key' , 30, 'ddd');

// スコアでソートして取得する
$ranking = $redis->zRangeByScore('key', 0, 40);

// 表示
print_r($ranking);

ブラウザからアクセスすると下記のように表示される。
f:id:yk5656:20140928164009p:image:w460

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/yk5656/20140923/1411889810
リンク元