У меня есть приложение Rails 3.1, на котором запущен сервер mysql для хранения данных.90% данных в приложении очень хорошо вписываются в реляционную базу данных.
Остальные 10% - довольно большой хэш, который мне нужно вытащить, изменить и вернуть довольно быстро.Это довольно большой запрос в mysql, чтобы собрать все эти фрагменты данных между несколькими таблицами, но как только я получу его один раз, я решил сохранить его как хеш, и пользователь сможет взаимодействовать с хэшем и вносить изменения.Эти изменения никогда не сохраняются обратно в mysql, поскольку mysql не нуждается в них.
Итак, я решил добавить redis в мое приложение rails, и друг порекомендовал гем redis-objects.
Я создал active_hash
модель и контроллер следующим образом:
class ActiveHash < ActiveRecord::Base
include Redis::Objects
end
class ActiveHashesController < ApplicationController
def show
#this is a big query with a bunch of merges, but simplified here as it isn't important
active = Game.find(params[:id])
active_hash_in_redis = ActiveHash.new()
if active_hash_in_redis.save
render :json => active_hash
else
render :text => "didn't save"
end
end
end
, когда я перехожу к active_hashes / id, я получаю сообщение об ошибке, что в MySQL нет таблицы active_hashes, что вернопотому что это должен быть мой redis db, как определено в модели.
Может кто-нибудь объяснить мне, как использовать обе базы данных в моем приложении, и / или указать мне учебник по этому вопросу?Я не смог ничего найти.Является ли использование Redis-Objects неправильным путем?Любые другие рекомендации?