Redisというものがどういったものなのか
出来るだけ容易にまとめてみました。
Redis入門
Redis とは何か
- Redis は、キーと5種類の値型の対応関係を格納する非常に高速な非リレーショナルデータベース(NoSQL)である
非リレーショナルデータベースがリレーショナルデータベースと比較して有利な点
- ビックデータに強い
- 大量のデータが高速に入ってくる場合、非リレーショナルデータベースは、分散アーキテクチャに基づいて構築されているため、1つまたは、複数のデータベースサーバーもしくはノードが停止しても、システム内の他のノードがデータを失うことなく運用を継続でき、高い耐障害性が実現している
- データモデルが柔軟
- リレーショナルデータモデルは、テーブル間の定義された関係に基づき、それらのテーブルはあらかじめ決まったカラム構造によって定義されている。そのため、大量のデータを扱うとき、スケーラビリティとパフォーマンスの面で問題がある。
一方、非リレーショナルデータモデルは、柔軟なデータモデルとなっているため、構造化・準構造化・非構造化データを問わず、安易に扱うことができる。
- リレーショナルデータモデルは、テーブル間の定義された関係に基づき、それらのテーブルはあらかじめ決まったカラム構造によって定義されている。そのため、大量のデータを扱うとき、スケーラビリティとパフォーマンスの面で問題がある。
memcachedとの比較
- 類似点
- キーから値へのマッピングを格納することが可能
- 相違点
- Redisは2つの異なる方法で、ディスクに自動的にデータを書き出すことができる。
- 4種類のデータ構造を格納できる。
- 主データベースとして使うことも、他のストレージシステムの補助データベースとして使うこともできる。
- Redisは2つの異なる方法で、ディスクに自動的にデータを書き出すことができる。
要素の削除方法
-
memcached
- ブラックリストを使って、要素を隠し、読み出し/更新/書き込み(あるいはデータベースクエリーとmemcachedへの書き込み)の対象にならないようにする
-
Redis
-
SET
を使い、要素を直接削除する
-
要素の削除の観点では、Redisを使うほうが、コードが短く、わかりやすくなる。また、高速になる(データを更新するためにデータベースを読み出す必要がなくなるので)
Redisのデータ構造
値は以下5種類のデータ構造のなかのどれか1つ
- STRING
- LIST
- SET
- HASH
- ZSET