Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yuji Otani
PPTX, PDF
109,027 views
Redisの特徴と活用方法について
2017/05/26のDB比較セミナーで使用した資料です。 NoSQLであるRedisについて説明しています。
Technology
◦
Read more
63
Save
Share
Embed
Embed presentation
Download
Downloaded 165 times
1
/ 65
2
/ 65
3
/ 65
4
/ 65
5
/ 65
6
/ 65
7
/ 65
8
/ 65
9
/ 65
10
/ 65
11
/ 65
12
/ 65
Most read
13
/ 65
14
/ 65
15
/ 65
16
/ 65
17
/ 65
18
/ 65
19
/ 65
20
/ 65
21
/ 65
22
/ 65
23
/ 65
24
/ 65
25
/ 65
Most read
26
/ 65
27
/ 65
28
/ 65
29
/ 65
30
/ 65
Most read
31
/ 65
32
/ 65
33
/ 65
34
/ 65
35
/ 65
36
/ 65
37
/ 65
38
/ 65
39
/ 65
40
/ 65
41
/ 65
42
/ 65
43
/ 65
44
/ 65
45
/ 65
46
/ 65
47
/ 65
48
/ 65
49
/ 65
50
/ 65
51
/ 65
52
/ 65
53
/ 65
54
/ 65
55
/ 65
56
/ 65
57
/ 65
58
/ 65
59
/ 65
60
/ 65
61
/ 65
62
/ 65
63
/ 65
64
/ 65
65
/ 65
More Related Content
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PDF
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
トランザクションの設計と進化
by
Kumazaki Hiroki
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
マイクロにしすぎた結果がこれだよ!
by
mosa siru
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
What's hot
PDF
webエンジニアのためのはじめてのredis
by
nasa9084
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PPTX
WiredTigerを詳しく説明
by
Tetsutaro Watanabe
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Vacuum徹底解説
by
Masahiko Sawada
PPTX
AWSで作る分析基盤
by
Yu Otsubo
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
by
NTT DATA Technology & Innovation
PPTX
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
by
NTT DATA Technology & Innovation
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
by
infinite_loop
PPT
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
webエンジニアのためのはじめてのredis
by
nasa9084
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
WiredTigerを詳しく説明
by
Tetsutaro Watanabe
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Vacuum徹底解説
by
Masahiko Sawada
AWSで作る分析基盤
by
Yu Otsubo
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
by
NTT DATA Technology & Innovation
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
by
NTT DATA Technology & Innovation
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
by
Recruit Technologies
Dockerからcontainerdへの移行
by
Kohei Tokunaga
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
by
infinite_loop
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
by
NTT DATA Technology & Innovation
Viewers also liked
PPTX
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
PDF
大規模Redisサーバ縮小化の戦い
by
Yuto Komai
PDF
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
by
Ryota Watabe
PDF
Hazelcast Distributed Lock
by
Jadson Santos
PDF
Developing better debug_components
by
Tomoaki Imai
PDF
MySQL
by
paulowniaceae
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
Redisととあるシステム
by
Takehiro Torigaki
PDF
Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースした話
by
LINE Corporation
PPTX
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
PDF
リクルート流Elasticsearchの使い方
by
Recruit Technologies
PDF
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
PDF
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
PPTX
Redis勉強会資料(2015/06 update)
by
Yuji Otani
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
PDF
20170210 jawsug横浜(AWSタグ)
by
Toshihiro Setojima
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
PDF
サーバーレスの今とこれから
by
真吾 吉田
PDF
KPTの基本と、その活用法
by
ESM SEC
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
大規模Redisサーバ縮小化の戦い
by
Yuto Komai
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
by
Ryota Watabe
Hazelcast Distributed Lock
by
Jadson Santos
Developing better debug_components
by
Tomoaki Imai
MySQL
by
paulowniaceae
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
Redisととあるシステム
by
Takehiro Torigaki
Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースした話
by
LINE Corporation
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
リクルート流Elasticsearchの使い方
by
Recruit Technologies
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
Redis勉強会資料(2015/06 update)
by
Yuji Otani
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
20170210 jawsug横浜(AWSタグ)
by
Toshihiro Setojima
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
サーバーレスの今とこれから
by
真吾 吉田
KPTの基本と、その活用法
by
ESM SEC
More from Yuji Otani
PPTX
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
PPTX
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
PPTX
Why choose Hack/HHVM over PHP7
by
Yuji Otani
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PPTX
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
PPTX
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
PPTX
Hack言語に賭けたチームの話
by
Yuji Otani
PPTX
スタートアップにおける技術チームの作り方
by
Yuji Otani
PPTX
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
by
Yuji Otani
PPTX
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PPTX
【初心者向け】Go言語勉強会資料
by
Yuji Otani
PPTX
Phalcon勉強会資料
by
Yuji Otani
PPTX
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
by
Yuji Otani
PPTX
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
PPTX
Nginx勉強会
by
Yuji Otani
PPTX
PHP基礎勉強会
by
Yuji Otani
PPTX
負荷分散勉強会
by
Yuji Otani
PPTX
NoSQL勉強会
by
Yuji Otani
PPTX
Php5 4勉強会
by
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
Why choose Hack/HHVM over PHP7
by
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
Hack言語に賭けたチームの話
by
Yuji Otani
スタートアップにおける技術チームの作り方
by
Yuji Otani
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
by
Yuji Otani
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
【初心者向け】Go言語勉強会資料
by
Yuji Otani
Phalcon勉強会資料
by
Yuji Otani
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
by
Yuji Otani
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
Nginx勉強会
by
Yuji Otani
PHP基礎勉強会
by
Yuji Otani
負荷分散勉強会
by
Yuji Otani
NoSQL勉強会
by
Yuji Otani
Php5 4勉強会
by
Yuji Otani
Redisの特徴と活用方法について
1.
Redisの特徴と 活用方法について 株式会社スカイディスク 大谷 祐司
2.
・株式会社スカイディスク CTO ・山口県下関出身 ・今年から福岡に移住してIoTやってます ・2児の父親です
3.
3自己紹介 マンガになりました。 雑誌に寄稿しました。 検索:大人になったらエンジニア 大谷
4.
本日はRedisについて、 特徴や事例など広くお話します。 Redisに興味を持ってもらえる きっかけになれば幸いです。
5.
Redisとは
6.
Redisは高速に値をRead/WriteできるNoSQLです。 ここ最近とてもメジャーになってきました。 単純なKVSとしての機能だけではなく、 様々な「便利に使える」仕組みを実装しています。
7.
Githubでオープンソースとして公開されています。 BSDライセンスです。
8.
Redisの歴史 2009年にSalvatore Sanfilippoというイタリアの 技術者によって開発されました。 2010年からVMWareが支援を行っています。 C言語で書かれています。
9.
AWSもRedisを提供 2013年9月からAWSのElastiCacheで採用。 Memcached or Redisを選択可能です。 ElastiCache
10.
Redisの特徴
11.
シングルスレッド Redisはシングルスレッドで動作します。 MySQLのように複数の処理を並列で行う事は不可能です。 必然的に、全てのデータ操作は排他的になります。 Redis コマンド コマンド コマンド コマンド 1スレッドで 順番に処理
12.
データベースの構造 Redis DB Key-Value Key-Value Key-Value Key-Value DB IDを指定して複数のDBを持つ事ができます。 各DBは独立してキーと値を保持できます。 Key-Value Key-Value Key-Value Key-Value
13.
高いパフォーマンス 全てのデータセットをメモリ内に読み込む 高速なデータアクセスを実現 ※メモリはHDDの数万倍早い。
14.
高いパフォーマンス 複数の操作を1回で実行可能 アプリケーション ⇔ Redis間の通信量を削減 コマンド コマンド コマンド 実行
15.
データ構造のサポート ・5種類の型を値として扱う事ができる。 ・値を計算して戻す事ができる。 ※LUAスクリプティング/セット型の集合演算 複雑なデータ構造の保持や計算を Redisに任せる事が可能
16.
メモリを使い果たしたら? 特定のルールに従って削除 LRUアルゴリズムなど、 5つのパターンから設定可能
17.
メモリを使い果たしたら? それでもメモリを確保できないときは、 書き込みが全てエラーになります。
18.
レプリケーション MASTER-SLAVEのレプリケーション構築が可能。 MASTERは複数台のSLAVEを設定できる。 MASTER SLAVE SLAVE SLAVE
19.
レプリケーション Redisのレプリケーションは非同期。 Master-Slaveでデータの差分が出る事がある。 データの特性によって参照先の選択が必要。
20.
データ永続化(バックアップ) ①SAVE/BGSAVE ⇒DBのフルダンプ(RDB = Redis
DataBase)を作成。 SAVE/BGSAVE Redis RDB 全データ
21.
データ永続化(バックアップ) ②AOF(Append Only File) ⇒コマンド実行ログ。ここからデータ復元可能。 コマンド Redis
AOF コマンド
22.
トランザクション 複数コマンドを纏めて実行 ・アトミックな操作の保証(他の処理をブロック) ・MULTIでトランザクション開始 ・全て実行(EXEC) or 全て未実行(DISCARD) MULTI コマンド コマンド コマンド EXEC(実行) DISCARD(未実行) or
23.
Slow-Logの出力 設定の閾値よりも遅いクエリをメモリに記録。 秒数を指定してSLOWLOGコマンドを実行 遅いクエリの一覧を取得
24.
コマンド実行状況の確認 MONITORコマンド実行 受け取ったコマンドを無限にダンプ (QUITコマンドで終了) コマンドの実行状況を把握できる。
25.
Luaスクリプティング スクリプト言語「Lua」をRedis上で実行可能。 予めRedisにスクリプトを登録する事ができる。 高度な計算をRedisで実行可能
26.
Luaスクリプティング 実行中は他のリクエストをブロックする。 時間が長い処理を行うのは危険。
27.
Redis Sentinel Redisプロジェクトで開発されている管理サーバ 死活監視/通知/自動フェイルオーバーを実現 V2.4.16以降で利用可能
28.
Redis-Cluster ・インスタンスのデータノード化 ・耐障害性 ・柔軟なスケーリング http://redis.io/topics/cluster-spec
29.
29 ・複数台で分散してデータを持つ(シャーディング) ・同じデータは複数台で持たない。 ・ノード毎にMaster-Slave構成が可能 (障害時はSlaveがMasterに自動で昇格) ・ノードを追加/削除した際にリシャーディンングが可能。 Redis Clusterの特徴
30.
30 ・ノードに0-16384の数字(slot)を割り振る。 ・リクエストのキーを計算して、対象のサーバを判別する。 [HASH_SLOT = CRC16(key)
mod 16384] クラスタリングの概要 [slot 0-5460] [slot 5461-10922] [slot 10923-16383] ①サーバを選んで命令 ②対象のサーバを判別して命令を転送 node1 node2 node3③命令を実行して結果を返す
31.
アーキテクチャ
32.
Redisのアーキテクチャ Redisはイベント駆動アーキテクチャで動作。 シングルスレッドでリクエストを処理します。
33.
Redisの動作イメージ 1プロセス/1スレッドで動作 Redis コマンド コマンド コマンド コマンド 1スレッドで 順番に処理
34.
Redisのアーキテクチャ 1台のサーバで複数コアを活用するには? 同一サーバに複数台のRedisを立ち上げ、 別サーバとして動かす事を推奨。 http://redis.io/topics/faq RedisはCPUの1コアのみを使用します。
35.
Redisのデータ型
36.
Redisには5つのデータ型があります。 各データ型について紹介します。
37.
文字列型 ・全てのデータの基本となる型。 ・バイナリセーフで、どんな値でも扱える。 ・最大1Gまで扱える。 Orange
38.
リスト型 ・文字列型のリスト。 ・先頭又は末尾に値の追加が可能。 ・リスト長をキャッシュして、高速に取得可能 Apple Orange Lemon
Kiwi Peach 1 2 3 4 5 値を順番に保持
39.
セット型 ・文字列型の順不同の集合。 ・同じメンバを重複して登録する事はできない。 ・2つのセットに集合演算が使用できる。 Apple Orange Lemon Kiwi Peach 値を順不同で保持
40.
セット型の集合演算用のコマンド 積集合(SINTER) A B
41.
和集合(SUNION) セット型の集合演算用のコマンド A B
42.
差集合(SDIFF) セット型の集合演算用のコマンド A B
43.
ソート済みセット型 ・文字列型の集合。 ・「スコア」の値でソートされた順位を持っている。 ・同じメンバを重複して登録する事はできない。 ・スコアの値、順位で範囲検索が可能。 Apple スコア :10 Orange スコア :30 Lemon スコア :50 Kiwi スコア :70 Peach スコア :90 1 2 3
4 5 値をスコアの大きさ順に保持
44.
同じスコアの場合の順位は? 同一順位が複数できるのではなく、 全ての値が別の順位になります。 (アスキーコード順にランク)
45.
ハッシュ型 ・順番がない文字列型のフィールドと値のマップ。 ・フィールド値での検索が可能。 ・値を指定しての検索は不可能。 Apple Orange Lemon Kiwi Peach A B C DE 値とキーをセットで保持
46.
最近の バージョンアップと機能追加
47.
Ver3.0リリース:2015年3月 ・ Redis Clusterへの対応。 ・
WAITコマンドの追加。 ・ LRUアルゴリズムの改善。
48.
Ver3.2リリース:2016年5月 ・GEO API導入(緯度/経度でインデックス) ・Luaスクリプティングのデバッガ ・Redis Cluster強化
49.
Ver4.0リリース準備中:(現時点でRC3) ・ 新しいレプリケーションの仕組み。 ・ LFUのキャッシュアルゴリズム。 →参照回数に基づくデータの維持 ・
RDBとAOFを合わせたバックアップファイル。 ・バックグラウンド処理を利用したデータ削除。
50.
Redisは進化し続けています
51.
Redisを使う方法
52.
Cliが用意されており、 コマンドで操作が可能です。
53.
53 多くの言語やフレームワークで Redis用のライブラリが存在します。
54.
AWSではElastiCacheとして利用できます。 フルマネージドで、マルチAZに対応しています。
55.
2016年10月からはRedis3.2に対応。 Clusterによるスケールアウトが可能に。
56.
Elasti Cache のパフォーマンス。 15シャードで最大3.5Tのメモリを利用可能。 各シャードは秒間2,000万読み込み、 450万書き込みの性能。
57.
Redisの活用事例
58.
複数サーバからネットワーク経由で利用できる Webアプリケーションのセッション たくさんのフレームワークで セッションストアとして採用されています。 expireを設定することで、セッションの自動的 な削除が可能です。
59.
RDBアクセスのキャッシュ 非常に高いRead/Writeのパフォーマンス RDBのデータをキャッシュとして保持。 複雑なSQLの実行で時間がかかるとき、 パフォーマンスアップに効果を発揮します。
60.
ゲームのランキングデータ User:A スコア :10 User:A スコア :50 User:A スコア :70 User:A スコア :90 1 3 4
5 ユーザランキング User:A スコア :30 プレイ結果 ソート済みセット型
61.
・「ユーザID」「スコア」をソート済みセットに登録。 ⇒スコア順のユーザランキングが生成される。 ・順位での検索、ユーザでの検索、スコアでの検索が可能。 ※RDBだとランク取得にorder_byが必要になり、処理が重い。 ゲームのランキングデータ
62.
IoTデータの一時データ保存先 センサーデバイス ゲートウェイ DBNW/APP
63.
最後に
64.
Redisは様々な機能をもったNoSQLです。 RDB等と組み合わせることで、パフォーマンスの高い アプリケーション構築を実現することができます。 ぜひ試してみてください。
65.
発表は以上になります。 ご清聴ありがとうございました。
Download