Redisのほんの入り口あたりの機能を試してみた。

Redisを使ってみました。

インストール

ちょっと遊ぶだけなので、Homebrewで手元のMacにサクっと入れます。

brew install redis

インストールが完了すると、起動設定のコマンドが出力されます。これをコピペして実行します。

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/redis/2.4.15/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

プロセスを確認すると、ちゃんと走っています。

$ ps aux | grep redis
katty        16646   0.0  0.0  2434892    548 s004  S+    4:39PM   0:00.00 grep redis
katty        16643   0.0  0.0  2444132   1096   ??  S     4:39PM   0:00.01 /usr/local/bin/redis-server /usr/local/etc/redis.conf

telnetで使ってみる

Redisのデフォルトのポートは6379だそうなので、ここにtelnetで繋いでコマンドを叩いてみたいと思います。

$ telnet localhost 6379
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set hoge HOGEHOGE
+OK
get hoge
$8
HOGEHOGE

setとgetは簡単にできました。

RedisはKVSですが、ものすごく多用なコマンドを持っているので、全てを把握するだけでも大変そうです。「Command reference – Redis」をざっと見ると100個くらいはあります。いろいろできそうでワクワクします。

PHPから使う

最後にPHPから使ってみました。まだコマンドを勉強していないので、Memcached的にsetとgetをするだけですが・・・。

PHP用のライブラリは、predisが良さそうです。githubに公開されているので、cloneしてきます。

git clone https://github.com/nrk/predis

ただライブラリを読み込んで、接続して、適当にsetとgetをする処理を書きました。

<?php
 
require 'predis/lib/Predis/Autoloader.php';
 
Predis\Autoloader::register();
 
$redis = new Predis\Client('tcp://localhost:6379');
 
for($i = 0; $i < 10; $i++){
	$redis->set('hoge', str_repeat('HOGE',rand(1,5)));
	echo $redis->get('hoge') . "\n";
}

実行結果が以下です。ちゃんと動きました。

$ php redis_sample.php 
HOGE
HOGEHOGEHOGEHOGE
HOGE
HOGE
HOGEHOGEHOGEHOGEHOGE
HOGEHOGEHOGE
HOGEHOGE
HOGEHOGEHOGE
HOGEHOGEHOGE
HOGEHOGEHOGE

本当の使い方はこんなものではない。

というわけで、Redisのほんの入り口あたりの機能を試してみました。

けれど、Redisの使いどころは、配列として保持されたデータの操作だったり、メモリとディスクのうまい使い分けだったりします。そういうわけで、もう少し掘り下げていくつもりです。

About katty0324

Leave a Reply

Scroll To Top