Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

REDIS Redis is an open source, advanced key- value store. It is often referred to as a data structure server since keys can contain strings, hashes,lists, sets and sorted sets. gem ‘redis’

Slide 3

Slide 3 text

USE Cache Session (cookies) gem ‘redis-rails’ App::Application.config.session_store :redis_store, :servers => "redis://127.0.0.1:6379/1"

Slide 4

Slide 4 text

Commands $redis = new Redis(:host => ‘127.0.0.7’, :port => 6379, :db => 0) $redis.set(‘my_key’, ‘awesome’) $redis.get(‘my_key’) => ‘awesome’ $redis.del(‘my_key’)

Slide 5

Slide 5 text

ENVIRONMENT Resque (+ Scheduler) Ohm EventMachine PubSub

Slide 6

Slide 6 text

Resque (+Scheduler) Fast ² Queue YAML - Cron gem ‘resque’ gem ‘resque-scheduler’, git: 'git://github.com/bvandenbos/resque-scheduler'

Slide 7

Slide 7 text

Ohm ORM Flexible Extensible gem ‘ohm’ gem ‘ohm-contrib’

Slide 8

Slide 8 text

Ohm (model) class User < Ohm::Model attribute :name attribute :nickname include Ohm::Validations extend ActiveModel::Naming include ActiveModel::AttributeMethods index :name collection :messages, Message end

Slide 9

Slide 9 text

Ohm (model) class User < Ohm::Model def persisted? false end def to_hash super.merge({:name => self.name}) end end

Slide 10

Slide 10 text

Ohm (model) class Message < Ohm::Model attribute :content include Ohm::Validations extend ActiveModel::Naming include ActiveModel::AttributeMethods index :content reference :user, User end

Slide 11

Slide 11 text

EventMachine Node.js for Ruby em-WebSocket em-redis gem ‘eventmachine’ gem ‘em-redis’

Slide 12

Slide 12 text

PubSub $redis = new Redis(:host => ‘127.0.0.7’, :port => 6379, :db => 0) $redis.publish(‘my_channel’, ‘content’) $redis.subscribe(‘my_channel’) do |on| on.message do |channel, msg| puts msg end end $redis.publish(‘my_channel.*’, ‘content’)

Slide 13

Slide 13 text

PRODUCTION Debian / OSX Heroku Easy (foreman)

Slide 14

Slide 14 text

@ damln www.dln.name