思考这个问题的本质就是要学会取舍和选型。
技术选型非常重要,大多人为了技术而技术,这是不可取的,就想小彬认为微服务必须解决分布式事务一样,但他却不知道为什么要用分布式事务,从而不知道什么时候要用分布式事务!!!
就想Redis一样,什么时候要用Redis呢?
1.平时的并发量比较大,数据库性能下降,需要使用缓存较少请求达到数据库的频率,从而来减轻数据库的读写压力。
2.瞬时突发流量非常大,击穿数据库,导致数据库崩溃。(其实,这里应该思考,为什么数据库会挂呢?数据库没有限流措施吗?)
3.应用采用了集群,分布式缓存比较合适。
4.考虑应用的规律,是读多写少,还是写多读少,还是读写频率相近。
以上两种情况可以使用缓存来解决性能问题和稳定性问题。
但是为什么要使用Redis呢?是因为高效吗?还是因为什么呢?为什么不使用memcache呢?
技术选型的一般依据:
1.技术人员对这项技术的接受程度
2.运维角度是否便利
3.是否是使用自己团队人员比较熟悉的开发语言写的
4.社区维护是否及时,质量是否比较高
5.是否方便扩展
6.是否满足性能要求