Redis的使用场景
使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库。通常,应用Redis的场景有:一旦使用Redis,就会导致Redis和数据库中都存在同样的数据,当数据发生变化时,可能出现不一致的问题!所以,还有某些数据在特定的场景中不能使用Redis:需要学会评估是否要求数据一定保持一致!要使用Redis缓存数据,至少需要:在使用Redis之前,还必须明确一些问题:暂定目标
·
使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库。
通常,应用Redis的场景有:
- 高频查询,例如:热搜列表、秒杀
- 改变频率低的数据,例如:商品类别
一旦使用Redis,就会导致Redis和数据库中都存在同样的数据,当数据发生变化时,可能出现不一致的问题!
所以,还有某些数据在特定的场景中不能使用Redis:
- 要求数据必须是准确的:下单购买时要求库存是准确的
- 如果每次库存发生变化时都更新了Redis中的库存值,保证了Redis中的数据是准确的,也可以使用
- 数据的修改频率很高,且对数据准确性有一定要求
需要学会评估是否要求数据一定保持一致!
要使用Redis缓存数据,至少需要:
- 开发新的组件,实现对Redis中的数据访问
- 此组件并不是必须的,因为访问Redis数据的API都非常简单,自定义组件时,组件中的每个方法可能也只有少量代码,甚至只有1行代码
- 如果直接将访问Redis的代码写在Service中,首次开发时会更省事,但不利于维护
- 【推荐】如果将访问Redis的代码写的新的组件中,首次开发时会更麻烦,但利于维护
- 在Service中调用新的组件,在Service中决定何时访问MySQL,何时访问Redis
在使用Redis之前,还必须明确一些问题:
- 哪些查询功能改为从Redis中获取数据
- Redis中的数据从哪里来
暂定目标:
- 根据类别的id查询类别详情,改为从Redis中获取数据
- 优先从Redis中获取数据,如果Redis中没有,则从MySQL中获取,且获取到数据后,将数据存入到Redis中,所以,经过首次查询后,Redis中将存在此数据,后续每一次都可以直接从Redis中拿到必要的数据
更多推荐
已为社区贡献1条内容
所有评论(0)