【问题标题】:using redis in place of a database on heroku app使用 redis 代替 heroku 应用程序上的数据库
【发布时间】:2011-06-02 12:17:28
【问题描述】:

我在 heroku 上部署了一个简单的应用程序。基本上,用户会来输入搜索词。我想在页面一侧添加一个显示“最近搜索”的小部分。虽然只是为此,我不想将数据库添加到我的应用程序中。我读过redis,但这是可以用来做的吗?我可以在 redis 哈希上推送大约 10 个最近的搜索词并检索它们吗?

【问题讨论】:

    标签: ruby-on-rails heroku redis


    【解决方案1】:

    是的,这是一个很好的 redis 用例。将搜索词推送到 Redis 列表中,并在您想要显示它们时检索最后十个。您可以定期从列表中删除除最后十个项目之外的所有项目,以避免它变得太大。

    像这样将项目添加到列表中(假设REDIS 是一个 Redis 连接):

    REDIS.rpush('searches', 'Xyz')
    

    并像这样检索最后十个:

    REDIS.lrange('searches', -10, -1)
    

    (作为副作用,Redis 将首先获取列表的最后一个元素,这可能是您想要的)。 Redis 列表的工作方式类似于 Ruby 数组,负索引意味着从末尾开始计数。

    要将列表限制为十个元素,您可以使用以下命令:

    REDIS.ltrim('searches', -10, -1)
    

    您可以在每次推送某些内容时执行此操作,以确保列表永远不会增长,或者您定期执行此操作。 lrange 操作意味着无论如何您只能检索最后 10 个元素,所以这只是一个偏好问题。

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 1970-01-01
      • 2011-09-09
      • 2022-12-07
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2019-04-05
      • 2016-05-29
      相关资源
      最近更新 更多