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
108,814 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
26
/ 65
Most read
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
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PPTX
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
PDF
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
PDF
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
初心者向けMongoDBのキホン!
by
Tetsutaro Watanabe
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
マイクロにしすぎた結果がこれだよ!
by
mosa siru
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
by
Koichiro Matsuoka
トランザクションの設計と進化
by
Kumazaki Hiroki
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
by
Amazon Web Services Japan
What's hot
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
こわくない Git
by
Kota Saito
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PDF
マイクロサービス 4つの分割アプローチ
by
増田 亨
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PPTX
Dockerからcontainerdへの移行
by
Akihiro Suda
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
ODP
Guide To AGPL
by
Mikiya Okuno
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
こわくない Git
by
Kota Saito
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
マイクロサービス 4つの分割アプローチ
by
増田 亨
DockerとPodmanの比較
by
Akihiro Suda
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
Dockerからcontainerdへの移行
by
Akihiro Suda
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
分散トレーシング技術について(Open tracingやjaeger)
by
NTT Communications Technology Development
DockerコンテナでGitを使う
by
Kazuhiro Suga
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
Guide To AGPL
by
Mikiya Okuno
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
Viewers also liked
PDF
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
PPTX
Redis勉強会資料(2015/06 update)
by
Yuji Otani
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PPTX
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
PDF
Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースした話
by
LINE Corporation
PDF
大規模Redisサーバ縮小化の戦い
by
Yuto Komai
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
PDF
KPTの基本と、その活用法
by
ESM SEC
PDF
リクルート流Elasticsearchの使い方
by
Recruit Technologies
PDF
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
by
Ryota Watabe
PDF
Hazelcast Distributed Lock
by
Jadson Santos
PDF
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
PDF
サーバーレスの今とこれから
by
真吾 吉田
PDF
Redisととあるシステム
by
Takehiro Torigaki
PDF
Developing better debug_components
by
Tomoaki Imai
PPTX
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
PDF
MySQL
by
paulowniaceae
PDF
20170210 jawsug横浜(AWSタグ)
by
Toshihiro Setojima
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
Redis勉強会資料(2015/06 update)
by
Yuji Otani
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースした話
by
LINE Corporation
大規模Redisサーバ縮小化の戦い
by
Yuto Komai
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
KPTの基本と、その活用法
by
ESM SEC
リクルート流Elasticsearchの使い方
by
Recruit Technologies
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
by
Ryota Watabe
Hazelcast Distributed Lock
by
Jadson Santos
Rubyで作るクローラー Ruby crawler
by
Takuro Sasaki
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
by
真吾 吉田
サーバーレスの今とこれから
by
真吾 吉田
Redisととあるシステム
by
Takehiro Torigaki
Developing better debug_components
by
Tomoaki Imai
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
MySQL
by
paulowniaceae
20170210 jawsug横浜(AWSタグ)
by
Toshihiro Setojima
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
by
mizugokoro
More from Yuji Otani
PPTX
【初心者向け】Go言語勉強会資料
by
Yuji Otani
PPTX
負荷分散勉強会
by
Yuji Otani
PPTX
Hack言語に賭けたチームの話
by
Yuji Otani
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PPTX
Nginx勉強会
by
Yuji Otani
PPTX
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
PPTX
スタートアップにおける技術チームの作り方
by
Yuji Otani
PPTX
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
by
Yuji Otani
PPTX
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
PPTX
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
PPTX
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PPTX
PHP基礎勉強会
by
Yuji Otani
PPTX
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
PPTX
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
PPTX
Phalcon勉強会資料
by
Yuji Otani
PPTX
Php5 4勉強会
by
Yuji Otani
PPTX
Why choose Hack/HHVM over PHP7
by
Yuji Otani
PPTX
NoSQL勉強会
by
Yuji Otani
PPTX
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
by
Yuji Otani
【初心者向け】Go言語勉強会資料
by
Yuji Otani
負荷分散勉強会
by
Yuji Otani
Hack言語に賭けたチームの話
by
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
Nginx勉強会
by
Yuji Otani
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
スタートアップにおける技術チームの作り方
by
Yuji Otani
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
by
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PHP基礎勉強会
by
Yuji Otani
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
Phalcon勉強会資料
by
Yuji Otani
Php5 4勉強会
by
Yuji Otani
Why choose Hack/HHVM over PHP7
by
Yuji Otani
NoSQL勉強会
by
Yuji Otani
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
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