MST

星途 面试题库

面试题:Redis有序集合在优化MySQL搜索结果排序场景下的基本应用

在使用Redis有序集合优化MySQL搜索结果排序时,假设MySQL中有一个文章表,包含文章ID、文章标题、阅读量等字段。当我们根据阅读量对搜索出的文章进行排序时,如何将MySQL查询结果导入到Redis有序集合中?请简述具体步骤和涉及的Redis命令。
26.7万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 具体步骤
    • 从MySQL数据库中根据搜索条件查询出文章数据,同时获取文章ID和阅读量字段。
    • 遍历查询结果,对每一篇文章执行导入Redis有序集合的操作。
  2. 涉及的Redis命令
    • ZADD命令:用于将一个或多个成员及其分数值加入到有序集合当中。例如,假设Redis有序集合键名为article_read_count_rank,在Python中使用redis - py库实现导入操作如下:
import redis

r = redis.Redis(host='localhost', port=6379, db = 0)
# 假设从MySQL查询出的结果为results,每个元素是一个字典,包含'id'和'read_count'字段
results = [{'id': 1,'read_count': 100}, {'id': 2,'read_count': 200}]
for result in results:
    article_id = result['id']
    read_count = result['read_count']
    r.zadd('article_read_count_rank', {article_id: read_count})

上述代码中,ZADD命令的第一个参数是有序集合的键名article_read_count_rank,第二个参数是一个字典,字典的键为文章ID,值为阅读量,以此将MySQL查询结果中的文章ID和对应的阅读量导入到Redis有序集合中。