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

ral*_*lph 3 ruby-on-rails heroku redis

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

The*_*heo 6

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

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

REDIS.rpush('searches', 'Xyz')
Run Code Online (Sandbox Code Playgroud)

并像这样检索最后十个:

REDIS.lrange('searches', -10, -1)
Run Code Online (Sandbox Code Playgroud)

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

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

REDIS.ltrim('searches', -10, -1)
Run Code Online (Sandbox Code Playgroud)

要么你每次推送东西,确保列表永远不会增长,或者你定期这样做.该lrange操作意味着你将永远只能检索最后10个元素,无论如何,所以它只是一个偏好的问题.