您的位置:首页 > 数据库 > Redis

重构set redis

2015-07-29 12:46 519 查看
def set_redis_data(channel_id,channel)
redis = Redis.new(:host => '10.xxx.xx.xx', :port => 6379)
redis.del(channel_id)
yesterday = (Time.now - 36000).to_i
all_channel_videos = channel.videos.not_deleted.where(:begin_time.gt => yesterday).desc(:begin_time)
all_channel_videos.each do |v|
video_hash = {}
video_hash[:showid] = v.showid
video_hash[:showname] = v.showname
video_hash[:begin_time] = v.begin_time
video_hash[:end_time] = v.end_time
video_hash[:vid] = v.vid
video_hash[:thumbhd] = v.thumbhd
video_hash[:channel_id] = v.channel_id
video_hash[:title] = v.title
redis.lpush channel_id, video_hash.to_json
end
end


在video_controller的方法

def set_redis_data(channel)
cache_key  = "channel_#{channel.channel_id}"
video_list = Redis::List.new("channel_#{channel.channel_id}")

needed_attributes = %w(show_id showname begin_time end_time vid thumbhd channel_id title)
videos = channel.videos.active.where(:begin_time.gt => 10.hours.ago.to_i).only(needed_attributes).asc(:begin_time)
videos_json = videos.map { |video| video.to_json }

video_list.clear
video_list.push *videos_json
end


在model的channel.rb里

def set_redis
video_list = Redis::List.new("channel_#{channel_id}")

needed_attributes = %w(showid duration showname begin_time end_time vid thumbhd channel_id title)
all_videos = videos.active.where(:begin_time.gt => 10.hours.ago.to_i).only(needed_attributes).asc(:begin_time)
video_list.clear

unless all_videos.empty?
videos_json = all_videos.map { |video| video.to_json }
video_list.push *videos_json
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: