WEB+DB PRESS Vol.73にRedisの特集記事を書きました

WEB+DB PRESS Vol.73にRedisの特集記事を書きました。

2/23発売なので、もう書店に並んでいると思います。

WEB+DB PRESS Vol.73

WEB+DB PRESS Vol.73

前半がRedisの概要、2.6の紹介と運用系の話で自分が担当、後半がRedisのコマンドや実例的な話で[twitter:@nekokak]さん担当です。

Redisはドキュメントが充実しています(redis.conf以外はw)が、日本語の情報は各人のブログエントリに散らばっていたりして一箇所にまとまったもの(特に2.6系に話題を扱ったもの)はあまりないんじゃないかと思います。

ですので、

  • これからRedisを触ってみたいと思っている人
  • とりあえず使ってるけどもうちょっと深く知りたい人
  • 2.4系を使ってるけど2.6が気になる人

にはきっと得るものがあると思いますので、手にとって貰えればと思います。

個人的には、

あたりに注目しています。


最後に特集の見出しを掲載しますので、気になる話題があったら是非、読んでみてください!


特集3 Redis大活用 高速・多機能KVSの決定版!

  • 第1章 Redisの基礎知識と2.6の新機能――ただのKVSじゃない!高性能、5つのデータ型、レプリケーション
    • Redisとは?
    • Redisの特徴
      • 多彩な5つのデータ型
      • インメモリで高速化+ディスクに書き出しで永続化
      • レプリケーション対応
      • Pub/Sub対応
      • バイナリデータも格納可能
      • 豊富なクライアントライブラリ
      • 使用事例
    • 2.6の変更点
      • ロゴのASCIIアートが表示されるようになった
      • Luaスクリプティングサポート
      • Redisコマンドの変更
        • 期限切れがミリ秒単位で指定できるようになった
        • ビット演算用のコマンドにいくつか新規追加
        • 小数での増加/減少
        • データのシリアライズ/デシリアライズと別サーバへ移動
        • デフォルトでスレーブは変更不可に
        • INFOの項目名の変更
        • 設定項目の変更
    • Redisの今後
  • 第2章 Redis運用の極意――サーバの起動から気をつけたい設定項目の確認まで
    • この章では
    • Redisのインストール
      • Redisのビルド
    • Redisの起動と終了
      • 起動
      • 終了
      • 起動時に出る警告
        • no config file specified... 設定ファイルの未指定
        • Unable to set the max number of files... 開けるファイルの上限数
        • overcommit_memory is set to 0... メモリオーバーコミットのチェック
    • Redisの設定方法
      • 設定ファイル
        • daemonize
        • logfile
        • save
        • rdbcompression
        • rename-command
        • maxclients
        • maxmemory
        • maxmemory-policy
        • appendonly
        • appendfsync
        • auto-aof-rewrite-percentage, auto-aof-rewrite-min-size
        • slowlog-log-slower-than
        • activerehashing
        • include
      • 現状の設定値の確認と動的変更
  • 第4章 Redisの代表的なコマンド――5つのデータ型、Pub/Subと管理機能操作
    • データ型と対応操作方法
    • Strings型を操作するコマンド
      • SET――Valueの登録
      • GET――Valueの取得
      • DEL
      • EXISTS――Valueの存在確認
      • INCR――Valueのインクリメント
      • DECR――Valueのデクリメント
    • Lists型を操作するコマンド
      • LPUSH――Valueを配列に追加
      • LLEN――配列にあるValueの個数を取得
      • LINDEX――指定した位置にあるValueの取得
      • LPOP――配列からValueを取り出し
      • LRANGE――指定した範囲内のValueを取得
      • LINSERT――指定した位置にValueを追加
    • Sets型を操作するコマンド
      • SADD――集合にValueを追加
      • SMEMBERS――集合内に存在するValueを参照
      • SCARD――集合内に存在するValueの個数を取得
      • SREM――集合からValueを削除
      • SDIFF――2つの集合の比較
    • Hashes型を操作するコマンド
      • HSET――fieldへValueを登録
      • HGET――fieldからValueを取得
      • HEXISTS――fieldの存在確認
      • HGETALL――fieldに紐づくValueを全て取得
      • HKEYS――fieldをまとめて取得
      • HDEL――fieldとValueを削除
    • Sorted Sets型を操作するコマンド
    • Pub/Subを操作するコマンド
      • PUBLISH――メッセージ送信
      • SUBSCRIBE――メッセージ受信
      • PSUBSCRIBE――パターン指定でメッセージ受信
      • UNSUBSCRIBE――メッセージ受信解除
      • PUNSUBSCRIBE――パターン指定でメッセージ受信解除
    • トランザクション管理コマンド
    • 接続系コマンド
      • AUTH――パスワード認証
      • PING――サーバへの接続確認
      • QUIT――サーバとの接続終了
    • その他管理系コマンド
      • INFO――サーバの情報取得
      • MONITOR――リアルタイムモニタリング
      • FLUSHALL――データの一括削除
    • Redisの特徴的な使い方
    • まとめ
  • 第5章 リアルタイムランキングの実装――Sorted Sets型を用いた高速かつ柔軟なアーキテクチャ
    • RankingのDataStorageとしてのRedis
      • Rankingデータの取り扱いの難しさ
      • リアルタイムランキングがデータベースでは難しい理由
    • Redisによるリアルタイムランキングの実現
      • Rankingデータ初回登録
      • Rankingデータ上書き
      • Rankingデータ削除
      • Rankingデータ取得
        • member指定でのscore取得
        • 指定したmemberの昇順ランキング情報取得
        • 指定したmemberの降順ランキング情報取得
        • ランキングの件数取得
        • ランキングの総件数の取得
        • 範囲指定での昇順ランキング情報取得
        • 範囲指定での降順ランキング情報取得
        • score付きランキング情報取得
        • 指定score範囲内の昇順ランキング情報取得
        • 指定score範囲内の降順ランキング情報取得
        • 指定score範囲内のランキング取得件数制限
        • 指定score範囲内のランキング取得その他
    • その他Sorted Setsの変わったコマンドたち
      • scoreのインクリメント/デクリメント
      • 複数のランキグ情報のまとめ上げ
      • ランキング情報まとめあげのもう一つの方法
      • rank範囲指定削除
      • score範囲指定削除
    • Redisを使ったRankingデータ取り扱いのデメリット
      • 同一score問題
      • なぜ同一scoreでrankがかわってしまうのか
      • Sorted Setsのパフォーマンス
    • 第5章まとめ