ピックアップ

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はこの性質を活かしてキャッシュやランキングなどに使われる

ということ。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事