akishin999の日記

調べた事などを書いて行きます。

Redis

redis-rb で自動的に圧縮して保存する

redis-rb を使って Redis に値を保存する際に自動的に圧縮して、取り出す時には自動的に展開してくれたら便利だな、と思って試しに作ってみました。Redis::Client へのモンキーパッチで、コマンド判別して Zlib::Deflate と Zlib::Inflate 使って圧縮・展開…

Redis の永続化について調べた

Redis でのデータの永続化方法について調べたので、忘れないうちにまとめておきます。調べた時の Redis のバージョンは 2.6.13 です。 スナップショット(RDB) Redis のデフォルトの永続化の仕組み この設定が有効な場合、Redis は定期的にデータベースの内容…

Redis でお手軽に複数台構成の検証環境を作る

最近 Redis の Sharding 構成やレプリケーション構成を検証するために複数の Redis インスタンスを起ち上げる事が多いのですが、その度に一々設定を変更した redis.conf を用意するのが結構面倒でした。という事でちょっと調べてみると、どうやら redis-serv…

Redis の仮想メモリはどうなったのか

一時期 Redis の特徴として良く挙げられていたものに、搭載している物理メモリ量以上のデータを扱える Virtual Memory という機能がありました。仮想メモリ技術仕様 ― redis 2.0.3 documentation http://redis.shibu.jp/hacker/virtualmemory.html個人的には…

Munin で Redis のリソース監視

Munin で Redis のリソースをモニタリングするためのプラグインをいくつか試してみたんですが、個人的には以下のものが気に入りました。bpineau/redis-munin · GitHub https://github.com/bpineau/redis-munin気に入った理由としては シェルスクリプト製なの…

redis-rb で ConsistentHashing の仮想ノード数を指定する

redis-rb では Sharding のアルゴリズムとしてコンシステント・ハッシュ法が使われています。 コンシステント・ハッシュ法でサーバごとのキーの偏りを減らす為の仮想ノードという仕組みがあるのですが、redis-rb を使う場合に仮想ノードの数をどうやって指定…

Redis でダウンタイム無しの再起動

Apache でいうところの「graceful restart」的な機能が Redis には無いのかを調べてみたのですが、どうやらそういった機能そのものは無いようでした。 では Redis の場合はサービスを無停止でバージョンアップなどを行い、プロセスを再起動するにはどうした…

Redis で Sharding してみた

Redis の Sharding は現状クライアントサイド、つまりライブラリ依存で実現されています。 ここでは Ruby と Java のライブラリで実際に Sharding を試してみました。 redis-rb redis/redis-rb · GitHub https://github.com/redis/redis-rbRuby から Redis …

Redis 2.6 の RPM を作成する

ちょっと使う必要があったので、Redis の最新版の RPM を作成してみました。環境は CentOS 6.3 です。まずは RPM の作成に必要な rpmbuild、rpmdevtools をインストールします。 # yum install -y rpm-build rpmdevtools 次に RPM 作成用のユーザを作成して …