SlideShare a Scribd company logo
1 of 31
Redis速習会@Wantedly
川崎禎紀 / Yoshinori Kawasaki
シゴトでココロオドル
• Redisの基本的な使い方
• Ruby on RailsからのRedisの使い方
今日速習する内容
シゴトでココロオドル
REmote DIctionary Server
シゴトでココロオドル
In-memory
http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
シゴトでココロオドル
• 高速なKVS
– メモリに全てのデータを保存
• 様々なデータ型
– 後述
• ディスクに非同期で永続化
– 後述
• 用途
– データベース
– キャシュ
– message broker
Redis
シゴトでココロオドル
• シングルスレッド
• 普通はCPU律速にならず、メモリまたはネッ
トワーク律速になる
• 最新バージョンは 3.0.5
– https://raw.githubusercontent.com/antirez/redi
s/3.0/00-RELEASENOTES
• ドキュメントがしっかりしている
Redis (contd)
シゴトでココロオドル
$ brew install redis
$ redis-server /usr/local/etc/redis.conf
$ redis-cli
127.0.0.1:6379> PING
PONG
課題 PING
シゴトでココロオドル
127.0.0.1:6379> GET foo
(nil)
127.0.0.1:6379> SET foo bar
OK
127.0.0.1:6379> GET foo
"bar"
127.0.0.1:6379> GETSET foo baz
"bar"
127.0.0.1:6379> GET foo
"baz"
課題 GET, SET
シゴトでココロオドル
• String
– 数値もString
• List
– 双方向リンクリスト
– LPOP, LPUSH, RPOP, RPUSH, RPOPLPUSH…
– ブロッキング版BLPOP, BRPOP, BRPOPLPUSH
• Set
– 集合
• Sorted set
– スコアつき集合
– range queryが使える
– スコアボードとかにつかう
Data Types
シゴトでココロオドル
• Hash
– Key-Value set
• Bitmap (bit array)
– bit列
• HyperLogLog
– 集合のcardinarity
• Geospatial item
– 緯度経度。まだ安定版にはない。
• http://redis.io/topics/data-types
• http://redis.io/topics/data-types-intro
Data Types (contd)
シゴトでココロオドル
127.0.0.1:6379> GET baz
(nil)
127.0.0.1:6379> INCR baz
(integer) 1
127.0.0.1:6379> GET baz
"1"
127.0.0.1:6379> INCRBY baz 1000
(integer) 1001
127.0.0.1:6379> GET baz
"1001"
課題 INCR, DECR
シゴトでココロオドル
127.0.0.1:6379> SET foo hello
OK
127.0.0.1:6379> EXPIRE foo 10
(integer) 1
127.0.0.1:6379> GET foo
"hello"
127.0.0.1:6379> TTL foo
(integer) 1
127.0.0.1:6379> GET foo
(nil)
127.0.0.1:6379> TTL foo
(integer) -2
課題 EXPIRE
シゴトでココロオドル
• http://redis.io/commands
コマンド一覧
シゴトでココロオドル
• RDB
– デフォルト
– 非同期スナップショット
• forkして書き込むので親processでdisk I/O発生しない
– 履歴バックアップしやすい
– リスタート時の読み込みがはやい
– 数分のデータロスの可能性
• AOF
– 追記型
• disk seekが発生しない
– RDBのログ相当(PostgreSQLのWAL)
• 再生可能
– スナップショットよりサイズが大きい
– 単独で使わない方がいい
• 作者は将来統合したいと思っている
– “we'll likely end up unifying AOF and RDB into a single persistence model
in the future (long term plan).”
ディスク永続化
http://redis.io/topics/persistence
シゴトでココロオドル
• Hash, List, Set(整数のみ), Sorted Setはデー
タ数とデータ長が設定値より少ない場合、エン
コードされて保存される
• CPUとメモリのトレードオフ
メモリ最適化されたデータ型
http://redis.io/topics/memory-optimization
シゴトでココロオドル
• noeviction
– don't expire at all, just return an error on write operations
– デフォルト。キャッシュとして使わない場合
• volatile-lru
– remove the key with an expire set using an LRU algorithm
– キャッシュとデータ永続化を両方使いたい場合
• allkeys-lru
– remove any key according to the LRU algorithm
– 冪乗則のアクセスパターンの場合
– まよったらこれ
• volatile-random
– remove a random key with an expire set
– キャッシュとデータ永続化を両方使いたい場合
• allkeys-random
– remove a random key, any key
– 均等にアクセスがある場合
• volatile-ttl
– remove the key with the nearest expire time (minor TTL)
– キャッシュ生成時によいTTLを設定できるならこれ
• EXPIRE使うとメモリを余計にとる
• キャッシュとデータ永続化は別々のRedisインスタンスにするのがオススメ
maxmemoryに達した場合の挙動
http://redis.io/topics/lru-cache
シゴトでココロオドル
$ redis-cli FLUSHALL
$ redis-benchmark -t SET -r 100000 -n 1000000
$ redis-cli INFO | grep used_memory
used_memory:11745408
used_memory_human:11.20M
used_memory_rss:20680704
used_memory_peak:20696752
used_memory_peak_human:19.74M
課題 メモリ使用量
シゴトでココロオドル
• コメントが充実している
• 一度ざっと目を通すのがオススメ
• 場所
– Homebrewでインストールした人
• /usr/local/etc/redis.conf
– GitHub 3.0 branch
• https://github.com/antirez/redis/blob/3.0/redis.conf
課題 設定ファイル
シゴトでココロオドル
$ redis-cli -h 130.211.253.154
130.211.253.154:6379> SUBSCRIBE channels:1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "channels:1"
3) (integer) 1
1) "message"
2) "channels:1"
3) "wantedly!"
$ redis-cli -h 130.211.253.154
127.0.0.1:6379> PUBLISH channels:1 wantedly!
(integer) 1
課題 Pub/Sub
シゴトでココロオドル
• Pipelining
– 複数コマンドを同時リクエスト
– RTTを削減
• Transaction
– MULTI / EXECコマンド
– Rollbackはしない
• Luaスクリプト
– EVALコマンド
– RDBのstored procedureのようなことも出来る
• Master-Slave replication
• Redis Sentinel
• Redis Cluster
その他の機能
シゴトでココロオドル
ここからRubyの話になります
シゴトでココロオドル
• redis
• redis-rails
• redis-rack
• redis-activesupport
• redis-actionpack
• redis-namespace
• redis-objects
• hiredis
• sidekiq, resque
Gem
シゴトでココロオドル
Railsと使う場合
# For Rails.cache
# config/application.rb
config.cache_store = :redis_store, 'redis://localhost:6379/0/cache', { expires_in:
90.minutes }
# For session store
# config/initializers/session_store.rb
MyApplication::Application.config.session_store :redis_store, servers:
‘redis://localhost:6379/0/cache’
実体は別のgem
require 'redis-store'
require 'redis-activesupport'
require 'redis-actionpack'
redis-rails gem
シゴトでココロオドル
redis-rails で使えないコマンドが使える
コマンドがそのままメソッド名になっている
# Remove the last element in a list, append it to another list and return it.
#
# @param [String] source source key
# @param [String] destination destination key
# @return [nil, String] the element, or nil when the source key does not exist
def rpoplpush(source, destination)
synchronize do |client|
client.call([:rpoplpush, source, destination])
end
end
redis gem
シゴトでココロオドル
• redis gemはpure ruby
• hiredis gemはCで書かれたconnectionと
reply parserのhiredisを使えるようにする
• benchmark
– https://github.com/redis/hiredis-
rb#benchmarks
hiredis gem
シゴトでココロオドル
Redisのdata typeをRuby的なdata typeにマップしてくれる
class Team < ActiveRecord::Base
include Redis::Objects
lock :trade_players, :expiration => 15 # sec
value :at_bat
counter :hits
counter :runs
counter :outs
counter :inning, :start => 1
list :on_base
list :coaches, :marshal => true
set :outfielders
hash_key :pitchers_faced # "hash" is taken by Ruby
sorted_set :rank, :global => true
end
redis-objects gem
シゴトでココロオドル
@team = Team.first
@team.on_base << 'player1'
@team.on_base << 'player2'
@team.on_base << 'player3'
@team.on_base # ['player1', 'player2', 'player3']
@team.on_base.pop
@team.on_base.shift
@team.on_base.length # 1
@team.on_base.delete('player2')
redis-objects gem (contd)
シゴトでココロオドル
keyにデフォルトのnamespaceをつける
redis = Redis.new
namespaced_redis = Redis::Namespace.new(:foo, redis: redis)
namespaced_redis.set(‘bar’, ‘baz’)
# equivalent to redis.set('ns:foo', 'bar'))
redis.get('foo:bar') # => 'baz'
redis-namespace gem
シゴトでココロオドル
• ソースコード
– git@github.com:wantedly/instant-learn-redis.git
• SNS的なやつ
– User: id, name, email, avatar_url
– Relation: user_id, friend_id
• プロフィールページ
– 共通の友人一覧が遅い
– http://localhost:3000/users/2
課題 mutual friends
シゴトでココロオドル
$ git clone git@github.com:antirez/redis.git
オプショナル課題
シゴトでココロオドル
• 速習したこと
– Redisの基本的な使い方
– Ruby on RailsからのRedisの使い方
• 速習しなかったこと
– Luaスクリプト
– Master-Slave replication
– Cluster
– Sentinel
– 実運用にむけた注意点
• ドキュメント読もう!
• ソースも読もう!!
まとめ

More Related Content

What's hot

Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介株式会社クライム
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールMasahiko Sawada
 
Ceph Day Tokyo - High Performance Layered Architecture
Ceph Day Tokyo - High Performance Layered Architecture  Ceph Day Tokyo - High Performance Layered Architecture
Ceph Day Tokyo - High Performance Layered Architecture Ceph Community
 
20101220 pixiv tech_meeting
20101220 pixiv tech_meeting20101220 pixiv tech_meeting
20101220 pixiv tech_meetingsemind
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例Naoto MATSUMOTO
 
カジュアルにバックアップ - MySQL Casual Talks 福岡
カジュアルにバックアップ - MySQL Casual Talks 福岡カジュアルにバックアップ - MySQL Casual Talks 福岡
カジュアルにバックアップ - MySQL Casual Talks 福岡Aya Komuro
 
Hadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate StorageHadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate StorageSATOSHI TAGOMORI
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Takamasa Sakai
 
Webサーバの性能測定
Webサーバの性能測定Webサーバの性能測定
Webサーバの性能測定Ryo Maruyama
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装Takuya ASADA
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークVirtualTech Japan Inc.
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたTaira Hajime
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報Emma Haruka Iwao
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 

What's hot (20)

Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介
Climb Forum 2019 Veeam v10最新情報とQoreStorのご紹介
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
Ceph Day Tokyo - High Performance Layered Architecture
Ceph Day Tokyo - High Performance Layered Architecture  Ceph Day Tokyo - High Performance Layered Architecture
Ceph Day Tokyo - High Performance Layered Architecture
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
20101220 pixiv tech_meeting
20101220 pixiv tech_meeting20101220 pixiv tech_meeting
20101220 pixiv tech_meeting
 
WalBの紹介
WalBの紹介WalBの紹介
WalBの紹介
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例
 
カジュアルにバックアップ - MySQL Casual Talks 福岡
カジュアルにバックアップ - MySQL Casual Talks 福岡カジュアルにバックアップ - MySQL Casual Talks 福岡
カジュアルにバックアップ - MySQL Casual Talks 福岡
 
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイドOpenstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
 
Hadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate StorageHadoop HDFS: The Ultimate Storage
Hadoop HDFS: The Ultimate Storage
 
Ec2でのdisk拡張方法
Ec2でのdisk拡張方法Ec2でのdisk拡張方法
Ec2でのdisk拡張方法
 
Webサーバの性能測定
Webサーバの性能測定Webサーバの性能測定
Webサーバの性能測定
 
InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
KVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマークKVM環境におけるネットワーク速度ベンチマーク
KVM環境におけるネットワーク速度ベンチマーク
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみたServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
ServerWorks Sonic! 003 LT - GlusterをZabbixで監視してみた
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 

Similar to Redis速習会@Wantedly

DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!h2so5
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作アシアル株式会社
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 
Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Yoshi Sakai
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)inaz2
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作Yuki Okamoto
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介gree_tech
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話Tokoroten Nakayama
 
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかEmma Haruka Iwao
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツールtamtam180
 
[OLD/STALE] Redis cluster (japanese)
[OLD/STALE] Redis cluster (japanese)[OLD/STALE] Redis cluster (japanese)
[OLD/STALE] Redis cluster (japanese)Shunichi Shinohara
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)l_b__
 

Similar to Redis速習会@Wantedly (20)

DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)Rhodes mobile Framework (Japanese)
Rhodes mobile Framework (Japanese)
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Osc2011 Do
Osc2011 DoOsc2011 Do
Osc2011 Do
 
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
 
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
 
[OLD/STALE] Redis cluster (japanese)
[OLD/STALE] Redis cluster (japanese)[OLD/STALE] Redis cluster (japanese)
[OLD/STALE] Redis cluster (japanese)
 
Bsd suki
Bsd sukiBsd suki
Bsd suki
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
 

More from Yoshinori Kawasaki

悪質WEO業社にだまされない為に
悪質WEO業社にだまされない為に悪質WEO業社にだまされない為に
悪質WEO業社にだまされない為にYoshinori Kawasaki
 
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性 "Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性 Yoshinori Kawasaki
 
Rubyと俺達の生存戦略 #kana01
Rubyと俺達の生存戦略 #kana01Rubyと俺達の生存戦略 #kana01
Rubyと俺達の生存戦略 #kana01Yoshinori Kawasaki
 
Wantedlyの成長を支える管理画面 #admin_night
Wantedlyの成長を支える管理画面 #admin_nightWantedlyの成長を支える管理画面 #admin_night
Wantedlyの成長を支える管理画面 #admin_nightYoshinori Kawasaki
 
How Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSHow Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSYoshinori Kawasaki
 
WantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかWantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかYoshinori Kawasaki
 
Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Yoshinori Kawasaki
 
WantedlyがまだSendGridを使いこなしてない話
WantedlyがまだSendGridを使いこなしてない話WantedlyがまだSendGridを使いこなしてない話
WantedlyがまだSendGridを使いこなしてない話Yoshinori Kawasaki
 
WantedlyとNew Relicとサイト高速化
WantedlyとNew Relicとサイト高速化WantedlyとNew Relicとサイト高速化
WantedlyとNew Relicとサイト高速化Yoshinori Kawasaki
 
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Yoshinori Kawasaki
 

More from Yoshinori Kawasaki (11)

悪質WEO業社にだまされない為に
悪質WEO業社にだまされない為に悪質WEO業社にだまされない為に
悪質WEO業社にだまされない為に
 
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性 "Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性
"Sync"開発秘話&事例紹介 〜 リアルイベント・勉強会を盛り上げるグループチャットの可能性
 
Rubyと俺達の生存戦略 #kana01
Rubyと俺達の生存戦略 #kana01Rubyと俺達の生存戦略 #kana01
Rubyと俺達の生存戦略 #kana01
 
Wantedlyの成長を支える管理画面 #admin_night
Wantedlyの成長を支える管理画面 #admin_nightWantedlyの成長を支える管理画面 #admin_night
Wantedlyの成長を支える管理画面 #admin_night
 
Wantedly on AWS #ctonight
Wantedly on AWS #ctonightWantedly on AWS #ctonight
Wantedly on AWS #ctonight
 
How Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWSHow Wantedly (in)directly uses AWS
How Wantedly (in)directly uses AWS
 
WantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのかWantedlyではどうやってiOSアプリ開発しているのか
WantedlyではどうやってiOSアプリ開発しているのか
 
Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話
 
WantedlyがまだSendGridを使いこなしてない話
WantedlyがまだSendGridを使いこなしてない話WantedlyがまだSendGridを使いこなしてない話
WantedlyがまだSendGridを使いこなしてない話
 
WantedlyとNew Relicとサイト高速化
WantedlyとNew Relicとサイト高速化WantedlyとNew Relicとサイト高速化
WantedlyとNew Relicとサイト高速化
 
Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方Wantedly - 世界一"いいね!"される 求人サイトの作り方
Wantedly - 世界一"いいね!"される 求人サイトの作り方
 

Redis速習会@Wantedly