【发布时间】:2013-11-28 21:01:47
【问题描述】:
我有一组约 60 个已排序的集合,每个集合包含约 200 个我正在尝试处理的成员。以前我构建了一个 Redis (Lua) 服务器端脚本,但请求的大 (O) 时间值在负载下陷入困境。
我现在正尝试将处理工作卸载到 Ruby/Sinatra,并在每个请求被证明效率低下时刷新结果。鉴于下面的代码,有没有办法在 Sinatra 中缓存“分数”结果,这样我就不必在每次请求时都从 Redis 中提取?
global = redis.smembers("id_list")
i=0
scores = redis.pipelined do
global.each do |key|
redis.zrange("user:#{global[i]}",0,100,:with_scores => true)
i+=1
end
end
【问题讨论】:
标签: ruby caching redis sinatra