使用缓存数据库(Redis)的典型场景

随着微服务、无状态、应用云化的热门技术兴起,Redis在应用开发的技术堆栈中显得越来越重要,Redis也逐渐成为应用的标配了,同时也就有了滥用的隐患。本文总结了应用使用Redis的典型场景,包括哪些场景不适合使用Redis,如果你准备或正在应用中使用Redis,可以参考借鉴,欢迎讨论交流。

适合使用Redis的场景

场景一:状态数据外置

什么是状态数据?没有准确定义,但是一种随着时间变化而变化的数据,属于状态数据的一种。用户登录的session就是典型的状态数据;一些随时间变化的统计数据(如网站页面访问数量)也属于状态数据。 在微服务多实例场景下,状态数据需要外置,否则会出现行为不一致的问题。如session超期判定,如果在每个实例中都有一个私有定时器处理session超期,那么就会出现有时候不超期,有时候超期的问题。 这种场景下的数据,适合保存到Redis。

场景二:热点(访问频度高)数据

热点数据,热点是指读取频度高,处于性能考虑,将这部分数据放入到Redis中,供应用程序读取。这种数据通常都是无需强一致性,实时性要求也不严苛。 热点数据一般是从持久化存储同步到Redis缓存,通常用的方案是:关系数据库(MySQL binlog)+MQ+Redis 同步的方案。

不适合使用Redis的场景

强一致性数据

如银行转账结果数据,不适合存在Redis中。

关注公众号获得更多云最佳实践