プロジェクト

全般

プロフィール

調査 #121

Tatsuya ISHIGAKI さんが29日前に更新

Docker 勉強中に、サービスの例として使用されていた **Redis** 
 自分で使用したことないので、少し調査 

 ## 参考Web 
 - [公式] [Redis](https://redis.io/) 
 - [GitHub] [redis/redis](https://github.com/redis/redis) 
 - [Qiita] [初心者による初心者のためのRedis解説](https://qiita.com/keinko/items/60c844bcf329bd3f4af8) 
 - [IBM] [Redisとは](https://www.ibm.com/jp-ja/think/topics/redis) 
 - [DeigNET] [Redisとは](https://www.designet.co.jp/faq/term/?id=UmVkaXM) 
 - [Zenn] [Redisの基本データ型とコマンド](http://zenn.dev/sdb_blog/articles/sdfasdcbaf1298sdf) 
 - [Qiita] [redis-cliでよく使うコマンド20選](https://qiita.com/hatsu/items/a52817364160e0b6bb60) 
 - [Qiita] [Redisチートシート(設定編)](https://qiita.com/morrr/items/26dbdd87df03315fa680#%E6%A6%82%E8%A6%81) 

 ## Redis 概要  
 - NoSQL型のDB 
   - キーバリュー型のDB 
 - インメモリDB 
 - `redis` というパッケージでインストール 
   - サービスは `redis-server` で起動 
   - サービスへは `redis-cli` というクライアントでアクセス 
 - `redis-cli` で接続後の命令例 (`redis:6379> ` は `redis-cli` のプロンプト) 
   ``` 
   redis:6379> set age 42           # キー "age", 値 "42" を登録 
   OK 
   redis:6379> set name smith       # キー "name", 値 "smith" を登録 
   OK 
   redis:6379> get age              # キー "age" の値を取得 
   "42" 
   redis:6379> keys *               # パターンでキーを一覧表示 
   1) "age" 
   2) "name" 
   ``` 

 ## Redis CLI 
 #### サービス起動 
 - `redis-server [設定ファイル] [オプション]` 
   - 代表オプション 
     - `--port N` N 番ポートで起動 
     - `--daemonize yes` デーモン化して起動 
     - `--databases N` データベース数を N に 
   - 設定ファイルにはオプションと同様の内容を書いて、起動時に指定することで適用 
     ``` 
     # 設定ファイル内容の例 
     port 30000 
     daemonize yes 
     databases 2 
     ``` 
   - 指定が無い場合、ポート `6379` 、非デーモンで起動 

 #### クライアント起動 
 - `redis-cli [オプション] [コマンド]` 
   - 代表オプション 
     - `-h ホスト` ホスト指定 (デフォルト `127.0.0.1`) 
     - `-p ポート番号` ポート指定 (デフォルト `6379`) 
     - `-n データベース番号` 0 - 15 
   - 引数にコマンドを与えると、非対話的に実行 
     - `redis-cli -h localhost SET hoge bar` 
   - 標準入力から redis コマンド文字列を与えると、非対話的に実行 
     - `echo "SET hoge bar" | redis-cli` 
     - 複数行のコマンドを記載したファイルを読み込ませるなども 
   - 他の場合には対話的インタフェースが起動する (概要の例の通り) 

 ## Redis 追加情報 
 - データ型 
   - 主なデータ型 
     - String 
     - List 
     - Hash 
     - Set 
     - Sorted Set 
   - データ型の基本は文字列 (String) で、数値も文字列で保持して利用する 
     - また、バイナリデータも文字列型として保持、利用する (画像なども) 
 - redis cluster という仕組みでの分散保持、併せてマスタースレーブ型での自動フェイルオーバーも利用可能 
 - List型のコマンドには `LPOP` `RPOP` `LPUSH` `RPUSH` があり、スタック・キューとして使える 
 - データベースは 0 ~ 15 の番号で指定する

戻る