Redis Introduction

<< Consulting コンサルティング Commands Introduction >>

Redis Introduction

Redis logo

主な特徴

  • データ保存所でディスクではなくメモリを使用します。
    しかし、データの安全な保存とバックアップのために他のサーバーのメモリにリアルタイムにコピーを残すことができるが、ディスクに保存する方法を提供します。
  • 性能は最高の場合、毎秒10万回実行します。 サーバーによって異なると一般的に毎秒2万~10万回実行します。
  • 基本的にkey-value保存方式ですが、Lists、Sets、Sorted Sets、Hashesのような多様な保存方式を提供します。
    したがって、多様な方式でデータを活用することができます。
  • Redis Server Instanceは1 threadで実行され、したがってCPU 1 coreのみ使用します。
    したがって、サーバ一つに複数のRedis Serverを立ち上げて使用することができます。

開発

Redis developer
  • 開発者: Salvatore Sanfilippo, from Sicily, Italy
  • 2009年に初期バージョン発表
  • 開発した動機: SalvatoreはGoogle Analyticsのようなリアルタイムウェブログ分析のアプリケーション(lloogg.com)を MySQLで開発中だったが、性能に限界を感じて直接Redisを開発するようになりました。
  • 現在、安定的なバージョンに3.0が出ており、3.0からクラスター機能が提供されます。

Memory DBに対する考え

Redis developer  Microsoft Research's eScience Group manager Jim Gray
  • Jim Grayは2006年にすでに、メモリがディスクの役割をするものであり、ディスクはテープになるだろうと言いました。
    そしてメインメモリーDBが一般的なDBになるだろうと言いました。
  • Memory is the New Disk, Disk is the new tape.
    Main Memory DB is going to be common.

    관련 기사: infoQ, wired, slideshare
  • メモリーDBに対する一般的な考えは早いということとデータ紛失に対する心配でしょう。
    早いということはRedisの大きな長所です。 データの紛失も心配することはありません。 RedisのMaster-slave機能は、リアルタイムでデータを他のサーバに複製することができます。
    この機能を利用すれば、Master serverがdownされても、slave serverに接続すればすぐにサービスを継続することができます。
    そしてRedisの性能をほぼ劣化させずにディスクを書く機能を提供します。
    Redis開始時にこのデータを読み込むため、データ紛失の危険はほとんどないと見てもいいです。

DB Engines Ranking

  • Redisが全世界のデータベースの順位で9位を占めています。
    Redisがこんなにたくさん使われているかよく知らなかったなら、これは驚くべき便りになることです。
  • Key-Value Store部分では圧倒的な1位を占めています。


Redisを使用するところ

国内はもとより、世界有数の企業でRedisを使用しています。
下のイメージをクリックすれば詳しい内容を見ることができます。

ここに紹介されたサイト以外でYahoo!、the guardian、tumblr、stackoverflow、viacom、GitHub、Instagram、 flickr、snapchatなど多くのサイトで使用しています。

Twitter ツイッター

  • Redisを利用して毎秒30万tweetを処理できるよう構築
  • 下はRedisを利用したTwitter Timeline architectureです。
twitter architecture
  • Real-Time Delivery Architecture at Twitter 動画: infoQ
  • 30 Billion Redis Updates Per Day 記事: Pivotal
  • Scaling Redis at Twitter 動画:

Weibo 微博

  • 微博は中国版ツイッターです。 中国インターネット使用者の70%以上が、微博を最も重要な情報手段と考える ものと調査されました。
  • 2013年1月23日、中国のお正月(チュンジョル)には、ツイッターを抜いて毎秒のメッセージ32,312件突破して記録も立てました。
  • 微博はRedisを利用して、毎日の5千億ツイート読みと5百億ツイート書きをできるように構築しており、
    500代以上のサーバー(マシン)で2000個以上Redisサーバー(インスタンス)を運営して18TB以上のメモリを使用します。
  • Redisを利用した微博アーキテクチャ
  • Weibe architecture
  • 関連記事: Largest Redis Cluster Ever(Eng.)
  • RedisはTop 10 listのようなものを選ぶのにとても適合して、経験上Redis・インスタンスの一つのメモリ使用量を30GB以下に維持しているそうです。

LINE

  • LINE Redis使用・アーキテクチャ:2011年
  • Naver Line architecture 2011
  • 使用者が急激に増加し、ネイバーのラインでは、新しいDBアーキテクチャを設計して、 メインDBをRedisでHBaseに変更しました。
    しかし、前方Queueの用途でRedis使用しています。
  • Naver Line architecture 2012
  • 関連文(LINE Engineers' Blog) LINE Storage: Storing billions of rows in Shareded-Redis and HBase per Month

KakaoTalk

  • 韓国でたくさん使用しているKakaoTalkもRedisを使用しています。
    '2015年インターネットトレンド報告書'によると、KakaoTalk平均実行回数は毎秒55回で全世界のアプリケーション(以下アプリ)のうち1位を占めました。
    次は公開SWのポータルサイトに紹介されたKakaoTalkのアーキテクチャです。
  • Kakao Talk architecture

アトランストーリー

  • モバイルゲームの中でRedisをメインシステムで使用した事例

  • Atlan Story

Pinterest

  • 下記の図は、2010年から2012年までPinterest日ごとのページビューグラフです。
    2012年10月Pinterestのデータベース構成はMySQL 80台、Redis110台、memcached 200台です。
    もちろん、今は訪問者がはるかに多いため、この構成よりはるかに大きくなったのです。
  • Pinterest
  • この文はpivotalにあるものとPinterestで数十億個の関係(follow users nd boards)をRedisを使用しているように紹介しています。 Using Redis at Pinterest for Billions of Relationships
  • この文はPinterestエンジニアリングブログにあるものとfollowの関係をRedis SortedSet、Setなどを利用して開発したという内容です。 Building a follower model from scratch
  • この動画はInfoQにあるものと2010年3月MySQL一台で始めて2012年10月までアーキテクチャが拡張されていく過程を説明しています。 Scaling Pinterest


Redis Data TypeとCommand




<< Consulting コンサルティング Redis Introduction Commands Introduction >>

質問したり、レスを見るためには、クリックしてください。  コメント :    クリック件数 :

Email 返事がかかってなれば、メールでお知らせします。