使用redis代替heroku应用程序上的数据库

时间:2011-01-02 15:08:40

标签: ruby-on-rails heroku redis

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

1 个答案:

答案 0 :(得分:6)

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

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

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

并像这样检索最后十个:

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

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

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

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

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