内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
•
sastruts
redis
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Redis ====== [[http://redis.io/|Redis]] ===== valkey ===== Redisのフォーク * https://valkey.io/ ===== インストール ===== $ brew install redis ===== サーバ起動 ===== デフォルト設定で起動(port 6379を使用) $ redis-server port 6379をマスターにしてport 6380で起動 $ redis-server --port 6380 --slaveof 127.0.0.1 6379 コンフィグファイルを指定して起動 $ redis-server ./redis-master.conf sentinelを起動 $ redis-sentinel コンフィグファイルを指定してsentinelを起動 $ redis-sentinel ./redis-sentinel.conf ===== コマンドラインツール ===== ==== クライアント起動 ==== $ redis-cli -h 127.0.0.1 -p 6379 DB番号を指定 $ redis-cli -n 1 ==== コマンド ==== 大文字/小文字どちらでも動作します。 === 共通 === キーを全て取得 KEYS * 指定したキーのデータ型を調べる TYPE key サーバの情報取得。引数で指定したセクションのみ取得することも可能 info info replication info server info sentinel 指定番号のDBに変更 select 1 === hash型データの操作 === keyに対して保存された値がハッシュでなければエラーになる。 ハッシュが持っているキーを全部取得する。 HKEKS key ハッシュが持っている値を全部取得する。 HVALS key ハッシュが持っているキーと値を全部を取得 HGETALL key === バルク処理 === ver 2.8から。 コマンドを羅列したファイルを作る。改行コードをCR+LF(windows)で保存 <code> set nyan nyannyan set wang wangwang </code> <code> cat data.txt | redis-cli --pipe </code> ===== redis運用の注意点 ===== ==== keysは絶対に使わない ==== keysは要するにテーブルフルスキャンで、とてもCPU負荷の大きいコマンドです。後述のとおりRedisはシングルスレッドゆえkeys処理中は他のコマンドを受け付けなくなります。 このコマンドをアプリケーションから安易に実行したことが原因で、かなり有名な会社が運営しているサービスやソーシャルゲームでも不具合を出した事例があります。要注意 ==== メモリは十分に ==== メモリ重要。全てのデータがメモリに乗るようにしましょう。 ==== Redisはシングルスレッド ==== CPUコアの多いマシンを使っても性能は上がりません。遅いからと言ってCPUの良いインスタンスに変えても改善しないことがほとんどです。 遅い場合は * メモリが足りているか * アプリ内で O(n) のコマンドを乱発していないか あたりをチェックしましょう。 ==== connectionのtimeoutを設定しよう ==== 特にコネクションプールする場合は、サーバ側にconnection timeoutを設定しましょう。 大抵のアプリは終了時にコネクションの切断などしていないのため、redisサーバ側に死んでいるコネクションが溜まっていき、いずれfile descriptorの限界を超えて新規接続ができなくなります。 redisサーバのtimeoutはredisクライアント側よりも大きい値にすべきです。クライアントより先にサーバ側でconnectionが破棄されると、クライアントはコネクション破棄を検知できずに死んだコネクションへ読み書きを行ってしまうためです。
redis.txt
· 最終更新: 2024/09/27 02:49 by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ