redis 大key怎么处理?

作者站长头像
站长
· 阅读数 12

业务:一项任务,开始任务时,将任务中的某项数据按照每5s保存一次到redis的list中,结束时删除redis(目前是这样)。想查数据时直接查redis

问题:上述情况将导致list的数据过大(因为不知道这项任务执行多久) 导致大key

现在想怎么处理这个大key

个人想到了:设置一个定时任务,每30分处理一次这个大key,将数据保存到数据库中 。先查数据时就查数据库和redis,将这两种实时数据整合,返回前端 (不知可行不可行)

回复
1个回答
avatar
test
2024-07-14

这个方法是可行的。将数据保存到数据库中,然后在查询数据时同时查询数据库和 redis 并将数据整合,返回给前端是一个不错的方法。

你可以考虑在结束时直接将数据保存到数据库中,而不是在结束后再设置一个定时任务来处理大 key。另外,你也可以考虑每隔一段时间将数据从 redis 中转存到数据库中,以避免 redis 中 key 过大。

在这种情况下,使用数据库来存储数据可能是一个更好的选择,因为数据库可以提供更强大的存储能力和查询功能,并且可以更好地管理数据。

总的来说,不同的情况可能需要不同的解决方案,你可以根据自己的情况选择最合适的解决方案。

answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容