目前自己用 mysql 实现了一个近期热搜功能,记录关键字、搜索次数、日期三个字段。
当用户搜索一个关键字时,会使用INSERT INTO DUPLICATE KEY UPDATE
语句对关键字记录创建或更新搜索次数。
这样我就可以每隔一周,使用 SQL 语句分组累计查询出最近一周 TOP10 的关键字列表,并使用 redis 缓存,过一周后再刷新。
目前每次刷新缓存时,分组累计查询语句会很慢,每天产生的记录很多,这种查询比较低效。
所以想来问一下有没有更高效的实现方式?
比如用 redis 的 sortset,但使用这个实现的话,取最近一周的日期怎么解决?