PHPからredisを利用する
2014/07/08
もうちょっと
突っ込んで触ってみる。
【接続と終了】
1 2 |
$redis = new Redis(); $redis->connect('127.0.0.1', 6379) or die('connect error'); |
エラーで止めたくない場合は、
1 2 3 4 5 |
if( $redis->connect('127.0.0.1', 6379) ){ //接続OK時 } else { //接続NG時 } |
で。var_dumpでみたところ返り値はtrue/falseだった。
次にデータベースの選択。
1 |
$redis->select(ここにデータベースナンバー); |
何も入れなければデフォでdb0に入る。
また、デフォで0~15までいける模様。
/etc/redis.conf
のdatabaseの部分を弄ればもっと増やせそうではある。
終了は、
1 |
$redis->close(); |
で行う。
【格納と取り出し】
・string 文字列
1つのkeyに対して1GBまで格納できるとのこと。
1 2 3 |
$redis->set('hoge','huga'); var_dump($redis->get('hoge')); //string(4) "huga" var_dump($redis->get('fuge')); //bool(false) |
無いキーを指定するとfalseが返ってきた。
条件分岐とかで楽に使えそう。
尚、同じキーで違う値を入れると上書きされる。
あと、
$redis->setex('hoge',10,'huga');
とすることで10秒後に消える設定にできた。
■ドキュメント
http://redis.shibu.jp/commandreference/strings.html
・list リスト型
重複OKな文字列のリスト型。前後から出し入れ、
範囲指定等で取出しが可能。ノーマルな配列と似たような感触。
1 2 3 4 |
$redis->rpush('hoge','ho'); $redis->lpush('hoge','ho2'); $redis->rpush('hoge','ho3'); var_dump($redis->lrange('hoge',0,$redis->llen('hoge'))); //array(3) { [0]=> string(3) "ho2" [1]=> string(2) "ho" [2]=> string(3) "ho3" } |
尚、有効期間を指定したい時は、
$redis->expire('key',秒数);
とすることでいける。
keyが存在しない場合はfalseが返る。
逆に秒数を確認したい時は、
1 |
var_dump($redis->ttl('hoge')); |
で確認できる。
キーが存在しなかったり、有効期間が設定されていない場合は
-1が返るので注意!
■ドキュメント
http://redis.shibu.jp/commandreference/lists.html
・hash ハッシュ型
1つのkeyに対してfield-valueで格納する。
多次元連想配列っぽいもの。
1 2 3 4 |
$redis->hset('age','tanaka',19); $redis->hset('age','yamada',22); var_dump($redis->hget('age','tanaka')); //string(2) "19" var_dump($redis->hget('age','suzuki')); //bool(false) |
年齢キーの田中さんは19歳、
山田さんは22歳みたいな形になる。
expireで秒数も指定できる。秒数が過ぎた場合は
そのkeyの値が全て消える。
また、重複登録は不可となっており、
1 |
$redis->hset('age','tanaka',33); |
とした場合、33歳に上書きされる。
■ドキュメント
http://redis.shibu.jp/commandreference/hashes.html
・set セット型/sorted set ソート済みセット型
順不同の文字列型集合。
1 2 |
$redis->sadd('huga','fufu'); var_dump($redis->SPOP('huga')); //string(4) "fufu" |
これの使い方、使い道はよく分からなかった。
■ドキュメント
http://redis.shibu.jp/commandreference/sets.html
http://redis.shibu.jp/commandreference/sortedsets.html
【その他】
・サーバー情報や統計情報、バージョン等を出力
1 |
var_dump($redis->info()); |
で表示される。
関連記事
-
-
フォルダにリンク制限をかける
imgというフォルダがあり、直接URLを叩いても 中身を見られないけど、同一サー ...
-
-
PHPで配列に特定の値が入っているか検索
PHPで配列に特定の値が入っているか検索して trueかfalseを返したい、と ...
-
-
PHPで配列じゃないものに対してソート
PHP Warning: sort() expects parameter 1 ...
-
-
pdfからjpg/jpegへ出来るだけ劣化させずに変換
やりたかった事はpdfからjpg画像への変換。 imagemagick使えばすぐ ...
-
-
PHPでメルマガを配信する方法2
以前にPHPでメルマガを配信する方法を書いたけど、BCCだと相手の名前などユーザ ...
-
-
MySQLのダンプとリストアをコマンドで行う
MySQLのダンプとリストアをコマンドで行う ■ダンプ mysqldump -u ...
-
-
PHPで「Unable to allocate~」とエラー
PHPで「Unable to allocate memory for pool」 ...
-
-
PHPでcharset
header("Content-Type: text/html; charset ...
-
-
セレクトメニューとテキストエリアの連動
やりたかった事は、 ・セレクトメニューで何れかを選択すると連動したテキストエリア ...
-
-
PHPでサイトURLからtitleとRSS用URLを取得
サイトのURLからRSS用URLとサイトタイトルを自動で取得したかった。その方法 ...