当前位置: 首页 > 知识库问答 >
问题:

使用Redis作为活动流的键/值存储

羿昊英
2023-03-14

我正在为我的应用程序创建一个简单的活动流。

  1. 用户执行操作,活动直接存储在MYSQL中的“activities”表中,并返回唯一的“activity_id”。
  2. 从数据库中检索该用户的“followers”的数组,并且对于每个followers我将这个新的activity_id推入Redis中的列表。

当用户查看他们的流时,我根据他们的用户ID从redis检索活动ID的数组。然后,我执行一个简单的MYSQLwhere IN($ids)查询,以获得所有这些活动ID的实际活动数据。

我相信这种设置应该是相当可伸缩的,因为查询在查询中总是非常简单的。然而,这也带来了一些问题。

    null

总结一下:我真正想知道的是我当前的设置/逻辑是一个好主意还是坏主意。我需要重新考虑一下吗?如果是的话,你推荐的型号是什么?如果你觉得一切都很好,我该如何处理上面的两个问题呢?我意识到这个问题是相当广泛的,所有的答案将是基于意见的,但这正是我正在寻找的。形成良好的意见。

事先多谢。

共有1个答案

寇景明
2023-03-14

1似乎没有那么难执行(没有循环):

delete Redis from Redis
 join activities on Redis.activity_id = activities.id
                and activities.user_id = 2 
                and Redis.user_id = 1
;

2我对归档不是很确定。您可以每个周期创建归档表,并定期将旧活动从主表移动到归档表。看起来一个正常的活动表应该可以变得很大。(确保任何“大型”活动都将活动数据存储在一个单独的表中,主活动表应该是“窄”的,因为它预计会有很多条目)

 类似资料:
  • 问题内容: 我想使用camel-redis设置键/值对。我尝试: 但没有喜悦。我得到错误: 尽管有很多有关如何订阅的示例,但我找不到有关如何设置键/值对的单个示例。我该怎么做? 问题答案: 和 (请注意,它们区分大小写)是消息头而不是URI参数

  • 问题内容: 我有postgres 9.3 db,我想使用Redis来缓存对数据库的调用(基本上像memcached一样)。我遵循了这些文档,这意味着我已经基本配置了redis以用作LRU缓存。但是不确定下一步该怎么做。如何告诉Redis跟踪对数据库的调用并缓存其输出?我怎么知道它正在工作? 问题答案: 用伪代码: 这可能必须是您正在使用的查询引擎的自定义适配器。

  • 为了保存数据,我将使用一个SET操作,即: 然后,为了更新数据,我将使用两个操作(GET+SET),即: 选项2:单值多键 我对方案1的赞成/反对意见 备选方案1优点: 更好的数据库组织,因为每个用户只有一个密钥 通过一个GET操作,我将拥有所有JSON数据 要更新所有JSON字段,我将只使用两个操作(GET+SET) 数据库的文件大小将更小 null 如果希望并发修改JSON负载(非原子读取-修

  • 问题内容: 我需要使用php创建一个具有大量数据的mysql数据库的解决方案。我的程序将有许多要求,我认为如果我使用缓存和OO数据库,我会得到很好的结果,但是我没有经验。 我认为,例如,如果我将保存在mysql中的信息缓存到redis数据库中,性能将会提高,但是我不知道这是否是个好主意,因此我希望有人来帮助我选择。 抱歉,如果我的英语不太好,我来自巴西。 问题答案: 是的,redis对此很有帮助。

  • 本文向大家介绍Redis使用Eval多个键值自增的操作实例,包括了Redis使用Eval多个键值自增的操作实例的使用技巧和注意事项,需要的朋友参考一下 在PHP上使用Redis 给多个键值进行自增,示例如下: 如果这样写可能需要请求五次,可以通过 Eval 方法来一次完成,大大提高效率 Redis 用的 Lua 语法,我也不熟悉,这个字符串拼接方式也很特别的是两个点号 “..” 以上这篇Redis

  • 本文向大家介绍ssm开发使用redis作为缓存的使用步骤,包括了ssm开发使用redis作为缓存的使用步骤的使用技巧和注意事项,需要的朋友参考一下 1、关于spring配置文件中对于redis的配置 2、配置自定义的RedisAPI,对redis数据库的管理 3、redis相关依赖  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。