1分で分かる!Redisとは?
ねぇねぇ、ジャバード先生。今度、パソコンを購入しようと思っているんだけど質問してもいい?
もちろんいいよ。何が聞きたいの?
メモリとハードディスクって、どういう違いがあるの?
簡単にいうと、メモリは一時的にデータを格納する部品だね。よく「机の広さ」にたとえられるよ。机が広ければ、Office、画像編集、動画閲覧といったいろんな作業を同時にできるんだけど、机が狭いと、同時にこなすことは難しくなってしまうんだ。
なるほど。じゃあハードディスクは?
ハードディスクはデータを格納するための部品だね。メモリと違うのは、データを永続的に保管できるところなんだ。両者の特徴としては、ハードディスクにアクセスするよりも、メモリへアクセスするほうが高速だけど、記憶できる容量はハードディスクの方が多いんだよ。
ふむふむ。
だから、パソコンではすぐ使うデータは「メモリ」、あまり使わないデータは「ハードディスク」っていうスタンスで動きつつ、メモリが足りなければハードディスクを使う…といった制御をしているんだよ。
あれ、ちょっと待って!いいこと思いついたかも!前にデータベースが遅くて困っているっていう悩みを相談されたことがあるんだけど、メモリにデータを格納するようにすればとっても速くなるんじゃない!?
あ、すでにそういうデータベースはあるんだよ。
え、あるの??
うん。Redisっていうデータベースは、インメモリーデータベースといって、さっきことりん君がいったように、データをメモリーに格納しながら動作するんだ。
もうあるんだ…。ってことはRedisって高速なの?
そうだね。かなり高速な処理を実現できるよ。
もっと早く気付いていれば…。
でも、デメリットもあるんだ。メモリっていうのは電源が落ちるとデータが失われることがあるから、障害が発生したときなどは、データの整合性が壊れてしまったり、データが消失することもあるんだよ。
そうなの?それはちょっと困りそうだね…。
最近では、そういったデメリットを解消したAmazon MemoryDB for Redisっていうサービスもスタートしているけどね。いずれにしてもメリットやデメリットを理解した上でデータベースを選ぶことが大事なんだよ。
そっか!ジャバード先生ありがとう!その辺を考えてデータベースを選ぶようにするよ!じゃあ、またね!
はーい!またね!
…あれ?ことりん君はデータベースじゃなくてパソコンを買いたいって言ってたような…。まぁいっか…。
Redisとは?採用に役立つ基礎知識
Redisは、データベースの1つです。一般的によく知られているデータベースは、MySQLやOracle Databaseといった製品です。このようなデータベースの特徴として、以下が挙げられます。
- データは表形式で管理する (Excelのようなイメージ。RDBMSとも呼ばれる)
- データは、読み書きする都度、ハードディスクなどの物理的なストレージへアクセスする
ただ、展開するサービスによっては、データを表形式で管理することが難しいことがあります。また、ハードディスクへのアクセスはパフォーマンスのボトルネックになってしまうこともあります。
Redisは、それらの問題を解消しています。データはキー・バリュー型と呼ばれる方式を採用しているため、1つのキー(たとえばユーザーID)に対して、さまざまな形式の値を保持することが可能です。また、Redisはインメモリデータベースと呼ばれ、ストレージではなくメモリ上にデータを保持します。そのため、高速な処理を実現可能です。
Redisを使うエンジニア
Redisを構築するのは、インフラ基盤(データベース)エンジニアです。構築後、アプリケーションを開発する際は、サーバーサイド(バックエンド)エンジニアがRedisを使います。
Redisを使うエンジニアの特徴と在籍業界
Redisを使うのは、大量アクセスが発生するようなアプリケーション、よりスピードを求められるアプリケーションです。製品に優劣をつけるわけではないですが、MySQLなどと比較すると、より厳しい条件が課せられることが多いといえます。そのため、Redisの開発経験があるエンジニアは、その他の開発経験も豊富なケースが多いです。
なお、Redisを使うエンジニアはスマートフォンアプリ業界を中心として、Web業界やSIer業界にもいます。ただし、絶対数としてはあまり多くありません。
採用する時に知っておくとよいこと
Redisエンジニアの需要
数年前まで「ビッグデータ」というキーワードは、IT業界で働くエンジニアしか知らないワードでした。ですが現在、「ビッグデータ」というキーワードは、ほとんどのビジネスパーソンが知っているという状況になっています。
わずか数年間の間に、アプリケーションが扱うデータ量は、爆発的な増加を見せています。また、歩みは遅いものの、日本でもDX化が進み始めており、アプリケーションに求められる条件も高まる一方です。
Redisは、このようなビッグデータを扱ったり、高速性が求められるアプリケーションに必要なものです。そのため、今後もRedisエンジニアの需要は高まっていくことでしょう。
求人のポイント
求人を作成する時は、下記の内容を求人に入れるとよいです。
1.システム(サービス)の詳細
※特にそのシステム(サービス)をなぜ作っているのかを熱量をもって記載する。
2.開発環境
3.現在のエンジニア組織の体制
4.現行システムの課題と募集の背景
5.求められる業務と期待値
6.エンジニアとしてのスキルアップ支援制度の有無と詳細
7.エンジニアチーム内での相互成長のための仕組み(勉強会やLT会など)の有無と詳細
8.選考フロー
9.待遇
10.キャリアパス
Redisの豆知識
Redisに関連するサービス
Redisはオープンソースソフトウェアですが、さまざまな企業がRedisをベースとしたサービスを展開しています。具体的には、以下のようなサービスを紹介します。
- AWS社 Amazon MemoryDB for Redis
- Microsoft社 Azure Cache for Redis
- IBM社 IBM Cloud Databases for Redis
- Alibaba Cloud社 ApsaraDB for Redis
- Google社 Memorystore for Redis
そのほかにも、HerokuやTencentといった企業もRedisに関するサービスを展開しています。
Redis関連のイベント
Redisに関するイベントとしては以下のようなものがあります。
RedisConf
RedisConfは、Redisを開発しているRedisLabs社が主催している公式イベントです。このイベントでは、Redisに関する最新情報などが発表されます。また、セッションは2日間にわたって、さまざまなテーマで開催されます。
参考:RedisConf
re:Invent
re:Inventは、Amazon Web Services社が主催している世界規模のイベントです。このイベントでは、同社のサービスに関する最新情報などが発表されます。
前述したとおり、Redisはさまざまなクラウドベンダーが、クラウドサービスとして展開しています。AWS社も、その中の1社です。そのため、re:Inventでも、Amazon MemoryDB for Redis、Amazon ElastiCacheなどに関する発表やセッションが開催されることがあります。