redis ( redis to go ) でリアルタイム?ランキング集計してみたby ruby 2 ( msgpack )

前回でredisでランキング集計できたけど
redis ( redis to go ) でランキング集計してみたby ruby - shoprevのブログ
redis to goの無料プランが5Mなので5M溢れたら?てことで
redis to goのサイトで設定を確認すると

# = Limits ===================================================================
maxmemory 5242880
# LRUアルゴリズムを使用し、期限切れになったセットのキーを削除します
maxmemory-policy volatile-lru
maxmemory-samples 3

maxclients 10
timeout 150

古いやつから削除?
データ入れて5M溢れさすのも負荷かけてしまいそうなので断念
最後に、redisにオブジェクト入れるときシリアライズが必要みたいなので
jsonじゃなくてmsgpackためしてみた

require 'uri'
require 'redis'
require 'msgpack'
uri = URI.parse("redis://redistogo:password@barreleye.redistogo.com:11444/")
redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
key="ranking"
redis.del key
value = {:id=>"1",:value=>"foo"}.to_msgpack
redis.set key, value
p MessagePack.unpack(redis.get(key))
#=>{:id=>"1",:value=>"foo"}

こんだけでリアルタイムランキング集計機能つけれてしかも速いってすごい
参考
redis/redis-rb · GitHub
msgpack/msgpack-ruby · GitHub