ピックアップ
Redisについて調べて試した件
今回は、
Redisについて、
使用する機会がなかったので、
調べながら試した時のメモ。
あくまで個人のメモ用なので、
断片的であったり、
正確な情報でないこともメモしている。
必要に応じて、
この記事を見直すと思うので、
その際は、調整するように。
何度かは見返すと思うので。
Redisとは?
Redisは インメモリデータベース
データをメモリ上に置くことで超高速アクセスを実現する。
以下の用途で使用
- キャッシュ:データベースアクセスの回数を減らす
- セッション管理:ログイン情報や一時データの管理
- メッセージキュー:Pub/Subやストリームでリアルタイム通知
また、
特徴としては、
・データ構造型が豊富
String(文字列)List(リスト)Set(集合)Hash(連想配列)Sorted Set(スコア付き集合)
・永続化も可能(RDBスナップショット、AOFログ)
・シングルスレッドで動作(ただし高速)
という点かなと。
Redisを試すための準備と起動
コンテナ立ち上げて試す。
コンテナ立ち上げ
docker run --name redis-test -p 6379:6379 -d redisコンテナに入って、
プロンプトに入る
redis-cli入ると、
127.0.0.1:6379>127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SET mykey "hello"
OK
127.0.0.1:6379> GET mykey
"hello"とりあえず動いた。
Redis把握のための基礎関連
Redisの位置づけ
NoSQLの1つ
RDB(リレーショナルDB)とは違い、テーブルや固定スキーマに縛られない
Key-Value型NoSQL の代表格
「キーで値を取り出す」単純な構造をベースにしている
| 種類 | 特徴 | 例 |
|---|---|---|
| Key-Value型 | キーで値を取り出すだけ。値の中身は自由 | Redis, DynamoDB |
| ドキュメント型 | JSONのようなデータをそのまま保存、クエリも可能 | MongoDB, CouchDB |
| 列指向型 | データを列単位で保存し分析向き | Cassandra, HBase |
| グラフ型 | ノードとエッジで関係性を表現 | Neo4j |
Redisを使う理由として、
Key-Value
Key-Value型が高速な理由
検索が単純
つまり計算量が少なく、アクセスが高速。
Key-Value型では キーを指定して値を取り出すだけ です。
RDBのように複雑な結合(JOIN)や条件検索が不要。
メモリ上で処理
Redisは インメモリデータベース なので、ディスクI/Oがほとんど発生しません。
RAMから直接データを読むので数十万〜数百万回/秒レベルの高速アクセスが可能
ということは?
↓
Key-Value型 = 「キーで値を取るだけ」 の超シンプル設計
メモリ上で動く + 検索単純 + データ構造シンプル → 超高速
Redisはこの性質を活かしてキャッシュやランキングなどに使われる
ということ。
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す