【发布时间】:2021-04-20 08:36:53
【问题描述】:
我是 Redis 新手并开始使用它。
我有一个 Rails 应用程序,未经身份验证的用户可以将报纸文章作为收藏夹,以便他们以后阅读。到目前为止,我一直在做的是将收藏夹存储在 cookie 中。
但我想用 Redis 实现同样的效果。
有命令lset。我不明白这个列表是对每个访问者都是唯一的还是对每个人都是通用的。
【问题讨论】:
标签: ruby-on-rails ruby redis
我是 Redis 新手并开始使用它。
我有一个 Rails 应用程序,未经身份验证的用户可以将报纸文章作为收藏夹,以便他们以后阅读。到目前为止,我一直在做的是将收藏夹存储在 cookie 中。
但我想用 Redis 实现同样的效果。
有命令lset。我不明白这个列表是对每个访问者都是唯一的还是对每个人都是通用的。
【问题讨论】:
标签: ruby-on-rails ruby redis
Redis 是一个键值对数据库,如果您为每个用户使用相同的键 - 那么列表对每个人都是通用的。可以通过在 key 中添加一些用户 id 来实现唯一性。
如果您想在用户列表中添加文章 id - RPUSH 更合适,因为您不知道文章将在哪个列表索引处。
另一个问题是数据过期,因为匿名用户的数据一旦用户清除他们的cookies/更改浏览器等就没有用了。在这方面cookie存储是更优选的。如果您担心 cookie 的大小 - 您可以考虑在客户端使用 localStorage。您还可以使用 rails 的 redis 会话存储 - 这样 cookie 仅包含会话 id,所有数据都进入 redis(rails 会关心它的结构,用户不太可能在您的任务中面临竞争条件)
【讨论】: