gpt4 book ai didi

mysql - 带有 MySQL 和小型 redis 存储的 rails

转载 作者:IT王子 更新时间:2023-10-29 06:16:06 25 4
gpt4 key购买 nike

我有一个运行 mysql 服务器的 Rails 3.1 应用程序来存储数据。应用程序中 90% 的数据非常适合关系数据库。

另外 10% 是一个相当大的散列,我需要相当快地取出、更改和放回。在 mysql 中,跨多个表将所有这些数据片段放在一起是一个相当大的查询,但是一旦我有了它,我想我会把它保存为散列,用户可以与散列交互并进行更改。这些更改永远不会持久化回 mysql,因为 mysql 不需要它们。

因此,我决定将 redis 添加到我的 rails 应用程序中,并且 friend 推荐了 redis-objects gem。

我已经创建了我的 active_hash 模型和 Controller

class ActiveHash < ActiveRecord::Base  include Redis::Objectsendclass 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    endend

当我导航到 active_hashes/id 时,我得到一个错误,指出没有 MySQL 表 active_hashes,这是正确的,因为它应该是我的 redis 数据库,如模型中定义的那样。

任何人都可以向我解释如何在我的应用程序中使用这两个数据库,和/或向我介绍如何执行此操作的教程吗?我什么也没找到。使用 Redis-Objects 是错误的方法吗?还有其他建议吗?

最佳答案

事实证明这对我来说有点困惑,但希望这对其他人有所帮助。

我最终没有使用 redis-objects,gem,我使用 gem redis 安装了 redis-rb。然后我将配置文件设置为

require 'redis'$redis = Redis.new()

此时我的模型实际上是空白的,在我的 Controller 中,我已经使用了

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])    $redis.set params[:id], active.to_json    get_game = $redis.get params[:id]    render :json => get_game        end    endend

关于mysql - 带有 MySQL 和小型 redis 存储的 rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com