読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

Redisコマンドリファレンスを翻訳しました

はじめに

こんにちは、Python界のはみだし刑事純情派です。さて、最近 id:a2c と @shibukawa ととりかかっていたRedisドキュメントの翻訳プロジェクトですが、自分が担当していたコマンドリファレンスがようやく翻訳完了したのでここにお知らせします。

翻訳したもの

とりあえず自分が翻訳したのはコマンドリファレンスとデータ型について

そもそもRedisってなんですか?

「翻訳したのはわかったけど、とりあえずRedisって何よ?」って方には下記をご参照あれ。 id:Voluntas お疲れ様です。

すげーざっくり言えばKVSだけどもmemcachedよりは機能がたくさんあるんじゃない?という感じ。自分なりにまとめてみると、

  • いい点
    • Key-ValueなんだけどValueが文字列だけじゃなくてリスト、ハッシュ、セット、ソート済みセットが使える
    • ANSI Cだけで書いてあるから依存するものがない = ビルドがハイパー楽
    • 永続化出来る
    • トランザクション処理可能
    • パブリッシュ/サブスクライブ機構を持ってる
    • リモートサーバ接続
    • レプリケーション機能
    • Pythonライブラリが優秀 (redis-py)
  • 頑張ってほしい点
    • APIがテキストプロトコルのみ(近い将来改善予定。ブランチにUDP実装あり。)
    • 運用実績が少ない(何と比べてだ、っていう話でもあるんですが)

まあ正直自分がそんなに使い込んでるわけでもないんでそんなにわかりません。もしすでに結構使っていて「こういう性質があるよ」って人がいたらブログにコメント下さい。

ちょっと遊んでみたいんだけど

インストール

とりあえず何はともあれインストールしましょう。

  • Macの人

MacPortsにあるよ

$ port search redis
...
redis @2.0.4 (databases)
    A persistent key-value database with built-in net interface written in ANSI-C for POSIX systems
...
$ sudo port install redis
  • Ubuntuの人
$ apt-cache search redis
...
redis-server - Persistent key-value database with network interface
...
$ sudo apt-get install redis-server
  • それ以外の人

多分他のディストリビューションでも簡単にパッケージ経由でインストールできると思いますよ。ここではソースからビルドする方法を載せます。

$ curl -O http://redis.googlecode.com/files/redis-2.0.4.tar.gz
$ tar xzf redis-2.0.4.tar.gz
$ cd redis-2.0.4
$ make

こんだけ。楽ちん。PATHが通ったところに置いときましょう。

コマンドを試してみる

Redisをインストールするとサーバプログラム redis-server とクライアントプログラム redis-cli が使えるようになります。

  • Redisサーバ起動
$ redis-server
[64910] 21 Nov 01:25:41 # Warning: no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf'
[64910] 21 Nov 01:25:41 * Server started, Redis version 2.0.4
[64910] 21 Nov 01:25:41 * The server is now ready to accept connections on port 6379
[64910] 21 Nov 01:25:41 - 0 clients connected (0 slaves), 1074272 bytes in use
[64910] 21 Nov 01:25:46 - 0 clients connected (0 slaves), 1074272 bytes in use

こんな感じで簡単にサーバが起動します。Warning出てますが、これは設定ファイルを書いてないから出てるだけで、ちゃんと動いているから大丈夫です。

  • Redisクライアントで接続してみる

さて今度は違うシェルを立ち上げていま立ち上げたばかりのRedisサーバに接続してみます。

$ redis-cli
redis> SET foo 1
OK
redis> GET foo
"1"

この時サーバの標準出力を見てみるとDBに登録されたのが確認できます。

[64910] 21 Nov 01:27:46 - Accepted 127.0.0.1:60334
[64910] 21 Nov 01:27:51 - DB 0: 1 keys (0 volatile) in 4 slots HT.
[64910] 21 Nov 01:27:51 - 1 clients connected (0 slaves), 1075264 bytes in use

こんな感じでコマンドリファレンスを見ながら遊んでみれば使い方がわかるのではないかと思いますよ。

  • プログラミング言語から呼んでみる

さらにこれを実際に使おうと思ったらライブラリ経由で叩くことになると思います。いろんな言語での実装がありますが、ここではPythonのライブラリを使ってみましょう。

$ easy_install redis
$ python
Python 2.6.6 (r266:84292, Oct  4 2010, 18:48:45) 
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import redis
>>> cli = redis.Redis()
>>> cli.set('spam', 'ymotongpoo')
True
>>> cli.get('spam')
'ymotongpoo'

簡単ですねー。インストールからライブラリで操作するまで5分もかかりません。それくらいビルドも簡単というのもRedisの魅力ですね。

参照

もちろん日本語訳はなるべく早く追従しますが、やはり最新情報は本家を参照してください。

Pythonライブラリです。出来が相当いいようですよ。