MTI Engineer Blog

エムティーアイ エンジニアブログ

ルナルナにAzure Redis Cacheを。

こんにちははじめまして。 エムティーアイ1年目、ルナルナグループの開発職の牧です。 男です。ルナルナを作っています。 ルナルナグループに行くことが決まった時の、私の驚きと戸惑いを想像して欲しいです。

 

ただ、ルナルナは10年以上続いているサービスということもあり、システムが非常に無駄が少なくキレイに組まれています。 そのため、今無駄なくキレイに設計・コーディングする術を学べる今の環境は、1年目の自分にとって充実してます。 今回はAzure Redis Cacheの概要と、ルナルナへの導入部分について書きます。 ルナルナではMicrosoft Azureを利用してサービスを構築しています。 その中で、Azure Redis Cacheを導入しており、その作業に私も携わりましたので、その話をします。

 

Redisってなに

Redisとは「remote dictionary server」から名前が付けられたオープンソースのkey-valueデータストアです。 ・・・なんかよく分からない!! 別の言い方をします。Redisを使うことで、データ構造を簡単に操作できるんです。 様々なデータ構造(リストやハッシュなど)に対応しており、Redisを使う側は、データ構造を管理するだけで、大規模なデータの操作ができるんです。Redisの中でいろいろやってくれていて、操作が簡単(=アトミックな操作)なんですね。

 

Redisの大きな特徴は、【処理速度の早さ】です。 具体的なデータは下の方で述べますが、Redisを使うと処理速度が非常に早くなります。 Redisを使えば、簡単にデータ操作できて、処理速度も早くなる。 そうです、Redisめちゃ便利なんです!最強なんです!

 

Microsoft AzureがRedisをキャッシュのように動作させているものが「Azure Redis Cache」です。 もっと詳しい説明が欲しい人は下記のURLを参照してください。 https://azure.microsoft.com/ja-jp/services/cache/

 

ルナルナにおけるAzure Redis Cache

ルナルナWebでは先日、Azure Redis Cacheを導入しました。 どのように導入しているか、という話をしたいと思います。

Webの画面遷移って、アプリに比べると時間がかかりがちですよね。 WebからAPIを叩いてデータベースからデータを取得したりと、時間がかかってしまいます。 低速になりがちです。もっと表示速度が上がれば、ユーザビリティが高くなりますよね。

そこで、Azure Redis Cacheを利用して、表示速度を向上させます。

f:id:mti-hackers:20170707182849j:plain

利用方法は以下です。 ・ルナルナWebがAPIを呼び出して値を取得します。 ・この時、取得結果をAzure Redis Cacheを用いてキャッシュします。 ・次からは、キャッシュで値を取得します。

このように、APIを呼び出して値を取得する機会を減らし、 高速で処理できるAzure Redis Cacheで必要な値を取得することで、 表示速度を上げることができます。

Azure Redis Cacheでどれくらい早くなるのか

実際にルナルナに導入してみた、一例を挙げます。 TOP画面のURLが叩かれてから、表示されるまでの早さを導入前後で比べてみました。

f:id:mti-hackers:20170707182910j:plain

なんと 約42% も改善していました! 実際に自分は早さ比べを体感してみましたが、結構早くなった感じがありました! 携帯を買い替えた時に、新しい携帯の使いやすさに驚く、みたいな気持ちに似ている気がします。

 

おわりに

今回はAzure Redis Cacheの概要と、ルナルナでどう使われているかの話をしました。 最近は実際に自分で作ったサイトにAzure Redis Cacheを組み込む、っていうことがしたいと思ってるんですけど、 年末ってなかなか時間が取れませんね、なんなんですかね忘年会って。笑 組み込みができたらハンズオン的な形で実装内容の記事を書ければと思います。