Your SlideShare is downloading. ×
Introduction to Redis
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction to Redis

1,267

Published on

Redis を社内で紹介する際に作成したもの。2012年5~6月頃。当時バージョン 2.6 リリース前。 社に関わる記述は全て除去。

Redis を社内で紹介する際に作成したもの。2012年5~6月頃。当時バージョン 2.6 リリース前。 社に関わる記述は全て除去。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,267
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction toRedisKatsuji Ishikawa <katsuji.ishikawa@gmail.com>
  • 2. これをみましょう =>http://bit.ly/n7BJBdhttp://redis.io以上!
  • 3. もとい
  • 4. menu•Redis の歴史•Redis の採用事例•Redis の特徴•Redis さわってみた
  • 5. 歴史• 2009年 Salvatore Sanfilippo がLLOOGG ( http://lloogg.com/ ) とゆー解析サービスのパフォーマンス改善のためにつくりはじめた• 2010年 VMware がスポンサーになった• http://redis.io/topics/sponsors
  • 6. 採用事例• http://bit.ly/eTETf2• blizzard• digg• Engine Yard• Github• stackoverflow• The Guardian• ニコニコ動画
  • 7. 特徴• インメモリベースの key-value store• データの永続化• スナップショット• 追記ファイル• 格納できるデータ量 = 搭載メモリ容量• その制約をこえる Redis VM が実装された(ver.2.0 )ものの非推奨 & ver. 2.4 で打ち切り☠
  • 8. • 様々なデータ構造を value として持てる• string• list• hash• set• sorted set
  • 9. • ここをみるが早いよ• http://redis.io/topics/data-types-intro• default port: 6379• 複数のデータベースを持てる: 複数ポートでLISTEN させなくてよい• redis.conf: database N (N=16 by default)• 指定がなければ 0 (db0) を使う
  • 10. • 豊富なコマンド• 100以上• http://redis.io/commands• 各言語のクライアントライブラリが充実• http://redis.io/clients• pip install redis hiredis• jemalloc 採用• Linux ではデフォルト
  • 11. • 野良make & インストール• tar zxf redis-X.Y.Z• cd redis-X.Y.Z• make && make install• make 32bit で x86_64 上で 32bit バイナリを作れる• メモリ使用量少ないけどデータ量あまりもてない• きっと 4G• make test 固まったりする• tcl8.5 が必要(CentOS 5.x は tcl8.4..)さわってみた
  • 12. • redis-cli コマンド• redis-cli info• memcached や tokyotyrant でいう stats みたいなもん• redis-cli shutdown• redis-cli config set ほげほげ• 設定(の一部)を動作中に変えられる• データ保存先やログレベルは変えられた
  • 13. •vm.overcommit_memory = 1•(ほぼ)必須なカーネルパラメータ♥•スナップショット構築時や追記ファイルの再構築時に redis-server がfork => メモリ確保できず ERRORになることがある
  • 14. • 一導入設定例• m1.xlarge (15GB !)• daemonize yes• loglevel notice• logfile /mnt/var/log/redis.log• dir /mnt/var/lib/redis• appendonly yes• appendfsync everysec• スレーブには slaveof redis-slave.example.com 6379 も設定
  • 15. • 同時接続数について• c10k 考慮してなかった?ためか起動スクリプトにulimit 必要• たぶん ver. 2.6 からは setrlimit するようになる• https://github.com/antirez/redis/issues/246• https://github.com/antirez/redis/commit/58732c23d53d6fc652668a516556ea182b0ed0f8• memcached, tokyotyrant はしてくれる
  • 16. • 個人的に検証(自腹)• m1.large• てきとーな4096バイトくらいの文字列を900,000 位いれた• ファイルサイズ: スナップショット, 追記型ファイルともに 3.5G• 起動後のロード所要時間 & shutdown 所要時間• ともに 40秒くらい, ロード中に get するとエラーが返る
  • 17. • 感想• スナップショットいらないかも?• 追記型ファイルつかうし・・Disk I/O 無駄じゃね• メモリいっぱいになったらどうするよ?• 5つの振るまいが選べる• volatile-lru ,allkeys-lru, volatile-random,allkeys->random (allkeys-randomなきがする),volatile-ttl , noeviction
  • 18. • http://redis.io/• http://try.redis-db.com/• http://thechangelog.com/post/2801342864/episode-0-4-5-redis-with-salvatore-sanfilippo• http://gihyo.jp/dev/feature/01/redisリンク

×