Database JUNKY

MySQL,MariaDBを中心としたブログです

NoSQL KVS redisサーバを構築してみる

いまさらなんですが、永続的memcachedと言われている、redisをインストールしてみました。 redisは、ニコニコ動画や、DECOLOG等で利用されている実績があるようで、単純な解釈ですと、サーバを再起動しても、データはなんとなく保障されているといった感じでしょうか? また、NoSQLでは必須であるレプリケーションや、クラスタリングなどもサポートされており、また、それらの設定も簡単なようです。

▼redis-serverのインストール

[shell]

wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz

tar zxvf redis-2.0.4.tar.gz

cd redis-2.0.4

makeを実行

make

サーバを起動

./redis-server

[/shell]

▼クライアントから接続試験 cliを使って、どんなもんか確認してみます。

・単純な値の書き込み 下記例は、mykeyに対して、somevalue という値を書き込む例です [shell]

./redis-cli set mykey somevalue

OK [/shell]

上記のキー値を確認します [shell]

./redis-cli get mykey

"somevalue" [/shell]

・リストを利用した書き込み

リストに追記してみる [shell]

./redis-cli lpush rdlist tokyo

(integer) 1

./redis-cli lpush rdlist osaka

(integer) 2

./redis-cli lpush rdlist kanagawa

(integer) 3

./redis-cli lpush rdlist chiba

(integer) 4

./redis-cli lpush rdlist kobe

[/shell]

登録した値の確認

・リスト中に含まれる要素の数を返します [shell]

./redis-cli llen rdlist

(integer) 5 [/shell]

・登録したリストの値を全件出力する [shell]

./redis-cli lrange rdlist 0 -1

  1. "kobe"
  2. "chiba"
  3. "kanagawa"
  4. "osaka"
  5. "tokyo" [/shell]
  6. lpush したので配列の若い順に値が格納されております。ちなみに[rdlist 0 -1] の -1 はlistの最大値から -1したものです。(配列は0から始まるので)

・登録したリストから上位2件を出力します [shell]

./redis-cli lrange rdlist 0 1

  1. "kobe"
  2. "chiba" [/shell]
  3. 特に説明いらないかな? 配列 0 から 1の範囲の値をもってきております。

次回は、アプリケーションからredisを利用する方法と利用用途について考えてみたいと思います

ちなみに、yum(remi)でもインストールできます、管理考えるのであれば、こっちのほうが個人的には楽

<<rpmforge,remi,epelのインストール>> cd /usr/local/src wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm rpm -ivh remi-release-5.rpm <<指定したリポジトリでのインストール>> # yum --enablerepo=remi list redis