首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用redis的新闻输入

问使用redis的新闻输入
EN

Stack Overflow用户
提问于 2016-02-18 08:05:50
回答 1查看 463关注 0票数 1

我有下表结构,其中存储用户的活动,比如“产品创建”

id user_id type_id类型动词数据created_at updated_at

每当一个事件发生在类似的产品上(产品的订单来了),我需要更新更新的时间,以便记录出现在第一个,因为用户将看到‘使用updated_at’行数据排序。我在这里所指的提要将由单个用户使用,这里没有遵循的概念。所以,不管是谁创造了一个饲料,都会看到他自己的饲料。如果有更新(某个人在该产品上下的订单)出现在提要上,它应该会上升。

因此,在下订单时,我将更新条目的更新时间,使其出现在第一个条目中。

我计划在读取时使用redis,但是在更新部分我很困惑。我该怎么处理这个案子。

我试过什么?

创建表结构如下

  1. id
  2. user_id -创建事件的用户
  3. 事件- created_product
  4. 产品表的event_id - product_id
  5. 产品详细信息的数据- json对象
  6. created_at
  7. updated_at

当收到订单时

更新updated_at时间戳。这样记录就会出现在用户提要的顶部。

但这似乎不是一个合适的解决方案,因为行的频繁更新可能会导致行锁定和更多的等待。我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 08:20:26

那么,您可以用redis创建排序集:

包含值的FEED:USER_ID:

PRODUCT_ID -最后更新时间作为得分

然后通过从redis获得的ids从数据库中获取产品。

但是,如果您的主要关注点是行锁定,那么也许您应该只进行队列更新?在更新产品时创建redis排序集"PRODUCT_UPDATED“并添加行:

USER_ID#PRODUCT_ID -更新时间作为评分

然后创建一些后台CRON作业,它将更新在排序集中找到的产品。你可以每秒钟做一次,或者每30秒一次,你可以节流更新的次数等等.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35475923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档