qadan 发表于 2023-2-26 11:16

Redis疑问解答?

第一个问题:
比如我的MySQL数据库中有一百万条数据,现在like模糊查询,需要花6秒,如何使用Redis进行优化,优化至查询两三秒这样。有相关的视频教程吗?




第二个问题:


我用MySQL查询出来500条记录,将这五百条记录存入Redis,后续用户在访问,直接从redis返回这五百条数据,不经过mysql了,这样行得通吗?

孤狼微博 发表于 2023-2-26 11:28

我回答第二个问题,应该都先查询redis ,如果没有就去数据库兜底查询(有穿透风险),返回给用户的同时存入到redis,下次在查询就秒返回了

骑猪踏白菜 发表于 2023-2-26 11:50

有个问题,为啥用like查询?这是第一个。第二个的话你得设定热点数据,不然到时容易造成redis的击穿或者奔溃,而且内存也要钱呀,别全塞里面

qadan 发表于 2023-2-26 11:53

骑猪踏白菜 发表于 2023-2-26 11:50
有个问题,为啥用like查询?这是第一个。第二个的话你得设定热点数据,不然到时容易造成redis的击穿或者奔 ...

因为搜索是模糊查询,需要用%like%去查询

骑猪踏白菜 发表于 2023-2-26 12:04

qadan 发表于 2023-2-26 11:53
因为搜索是模糊查询,需要用%like%去查询

emm,这样的话建议去优化一下查询语句,走索引,或者用一些骚操作去优化sql语句,减少查询时间,然后我刚刚自己尝试了下100w条数据走索引的情况,一般都是1秒内就能查询得到,如果走全表扫描,时间可能得2秒多,所以你可能是没走索引走的是全表扫描

骑猪踏白菜 发表于 2023-2-26 12:05

骑猪踏白菜 发表于 2023-2-26 12:04
emm,这样的话建议去优化一下查询语句,走索引,或者用一些骚操作去优化sql语句,减少查询时间,然后我刚 ...

建议你可以去explain查看一下sql信息

namedlxd 发表于 2023-2-26 12:12

第一个要用全文检索,类似es的东西,自己找一下
第二个要保证数据库里面这五百条不会变 才可以这样做
页: [1]
查看完整版本: Redis疑问解答?