ruby-on-rails - 在 Redis 上存储匿名用户的收藏夹
问题描述
我是 Redis 新手并开始使用它。
我有一个 Rails 应用程序,未经身份验证的用户可以将报纸文章作为收藏夹,以便他们以后阅读。到目前为止,我一直在做的是将收藏夹存储在 cookie 中。
但我想用 Redis 达到同样的效果。有命令lset
。我不明白这个列表是对每个访问者都是唯一的还是对每个人都是通用的。
解决方案
Redis 是一个键值数据库,如果您为每个用户使用相同的键 - 那么列表对每个人都是通用的。唯一性可以通过在密钥中添加一些用户 ID 来实现。
如果您想在用户列表中添加文章 id -RPUSH
更合适,因为您不知道文章将在哪个列表索引。
另一个问题是数据过期,因为一旦用户清除了他们的cookies/更改浏览器等,匿名用户的数据就没有用了。在这方面cookie 存储是更优选的。如果您担心 cookie 的大小 - 您可以考虑在客户端使用 localStorage。您也可以使用 rails 的 redis 会话存储——这种方式 cookie 仅包含会话 id,所有数据都进入 redis(rails 会关心它的结构,用户不太可能在您的任务中面临竞争条件)
推荐阅读
- button - 更改 mailchimp 中按钮的形状
- perl - 如何在 perl 中使用 \e 元字符拆分字符串?
- cucumber - 黄瓜异常:无法加载插件类:com.epam.reportportal.cucumber.ScenarioReporter
- php - 从 MYSQL 查询临时存储变量
- image - scipy.misc 图像函数(例如 imread、imresize、imsave、imshow 等)上的 AttributeError、ImportError
- c++ - 在 macOS 上的另一个窗口中打开小部件
- laravel - 无论排序如何,Laravel Eloquent 都会将所有返回的列值为 0 的行放在最后
- python - 仅当 DataFrame 中存在一行时,如何在 Pandas 中删除一行
- git - 如何设置 git config 以使用域的特定密钥?
- ruby - 红宝石。读取简单文件后的 NUL 字符