redis学習ノートの環境構築

2709 ワード

1.概要
redisはオープンソースのkey-valueデータベースです.また、データ構造サーバとしてよく考えられます.そのvalueには基本的なstringタイプだけでなくlist,set,sorted set,hashタイプも含まれているからです.もちろんこれらのタイプの要素もstringタイプです.すなわちlist,setのこれらの集合タイプも含めるしかない
stringタイプ.これらのタイプで原子的な操作をたくさんすることができます.たとえば、1文字valueに文字列を追加します(APPENDコマンド).1つの数字文字列を加算または減算(INCRコマンドは、もちろん整数で処理される).リストタイプに対してpush、pop要素操作(スタックとキューをシミュレートできます)を行うことができます.setタイプについては、いくつかのセット関連操作(intersection union difference)を行うことができる.memcacheにも+,--に似たコマンドがあります.
ただしmemcacheのvalueにはstringタイプのみが含まれています.redisのvalueタイプが豊富ではありません.memcaheと同じように性能のためです.redisのデータは通常メモリに格納されます.もちろんredisは、メモリ内のデータを一定時間間隔でディスクに書き込むことで、データの損失を防ぐことができます.redisは、プライマリ・スレーブ・レプリケーション・メカニズム(master-slave replication)もサポートします.redisの他の特性には、簡単なトランザクションサポートとパブリッシュサブスクリプション(pub/sub)チャネル機能が含まれており、redis構成管理は非常に簡単です.さまざまな言語バージョンのオープンソースクライアントクラスライブラリもあります.
2.インストール
ダウンロード先:http://redis.googlecode.com/files/redis-2.0.4.tar.gz 
2.0現在は最新の安定版
linuxで次のコマンドを実行してインストールできます.
$ tar xzf redis-2.0.4.tar.gz
$ cd redis-2.0.4
$ make
makeが完了するとredis-2.0.4ディレクトリの下にコンパイルされたredisサービスプログラムredis-serverが表示され、テスト用のクライアントプログラムredis-cliも表示されます.
次にredisサービスを開始する.
$./redis-server
この方法でredisを起動するには、デフォルトの構成が使用されます.起動パラメータにより、指定プロファイルを使用する次のコマンドで起動するようredisに伝えることもできる.
$ ./redis-server redis.conf
redis.confはデフォルトのプロファイルです.必要に応じて独自のプロファイルを使用できます.
redisサービスプロセスを開始すると、テストクライアントプログラムredis-cliとredisサービスインタラクションを使用することができる.
たとえば
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
ここではgetとsetコマンド操作の簡単なタイプvalueの例を示します.fooはkey、barはstringタイプのvalueです
linuxがない人はこのオンラインで練習することができますが、もちろんオンライン版の多くの管理関連コマンドはサポートされていません.
http://try.redis-db.com/
3.javaクライアントhello,world
クライアントjarパケットアドレスhttp://cloud.github.com/downloads/alphazero/jredis/jredis-1.0-rc2.jar
 .バージョンは現在少し古く、Redis 1.2.6までサポートされています.最新版2.0のはまだreleaseしていません
eclipseでjavaプロジェクトを新規作成し、jredisパッケージリファレンスを追加します.次はhello、worldプログラムです
  package jredisStudy;
import org.jredis.*;
import org.jredis.ri.alphazero.JRedisClient;
public class App {
    public static void main(String[] args) {

         try {
             JRedis  jr = new JRedisClient("192.168.56.55",6379); //redis        
           
             String key = "mKey";
             jr.set(key, "hello,redis!");
             String v = new String(jr.get(key));
             
             String k2 = "count";
             jr.incr(k2);
             jr.incr(k2);
             System.out.println(v);
             System.out.println(new String(jr.get(k2)));
             
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

}