Redis自2009年问世以来,到2018年稳定版发布, Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。都知道Redis的 value 支持五种数据类型,分别为string (字符串类型),hash (表类型),list (列表类型),set(集合类型) 和zset (有序集合类型)。Redis的持久化方案 一、AOF 二、RDB 。AOF将redis的执行过程全部用指令进行数据存储,RDB是以快照方式将某个时间点的数据用快照形式进行保存两者各有利弊,RDB的时效性更好但是数据完整性不能保证,而AOF的数据完整性优于RDB但是速率慢一定程度上牺牲系统的性能,具体用那个要结合实际情况结合业务具体分析,一般情况下建议采用两者相结合的方式比较稳妥。Redis的应用场景,比如热点数据、红包雨、购物车、抢票、、我之前做的联通的项目中设计到使用StringRedisTmplate对用户设置时间内尝试登录次数做限制,也包括页面长时间没有点击事件或者无光标移动时做自动退出操作。Redis的集群部署的三种方式:1.主从2.哨兵模式3.集群。redis做缓存存在1. 穿透2.击穿3.雪崩的问题 穿透是大量请求内存中数据redis某一key值失效导致大量请求到数据库,解决方式就是为键key的过期时间设置为永不过期,穿透是请求Redis中和数据库中都没有的数据,它的解决方案多种比如在nginx中配置拦截过滤,对用户参数做检验,对于请求key设置对应的value为null,雪崩是redis中大量的key值失效导致大量请求到数据库,它的解决方案是为key设置失效时间为随机数方式 或者设置为永不过期这个要结合具体的业务需求。