1.Redis的持久化:
RDB(默认)
二进制存储持久化数据,速度相对较快
持久化时机:save second keys
RDB无法保证数据的安全
2.AOF
AOF是一日志的形式持久化,用户的写操作,速度慢
AOF持久化时机:always ,everysec,no
AOF相对RDB更加安全
3.官方推荐同时开启RDB和AOF两种持久化机制
在恢复数据时,AOF的持久化优先级更高
同时开启AOF和RDB ,在RDB执行持久化时,RDB数据会被AOF覆盖
4.AOF重写
自动重写:指定AOF的文件超过技术的100%,并且大小超过64M,自动执行AOF重写
手动重写:输入命令
5.Redis主从(了解)
目的:提升Redis的读取数据的能力
主从特点:主节点负责读写,从节点只负责读
从节点数据是从主节点同步的
一个主节点可以有多个从节点,一个从节点只能隶属一个主节点
只需要在redis.conf文件中,指定replicaof主节点ip,主节点port
6.Redis哨兵(了解)
在主从架构基础上,解决Redis的单点故障问题
哨兵特点:需要在每一个Redis节点上配置哨兵
每个哨兵都需要连接Master节点
7.Redis集群
Redis集群的特点:提升读写能力,避免单点故障,提高存储上限
Redis集群特点:Redis集群是无中心的
Redis集群中每个节点都可以相互通讯,ping-pang机制
Redis集群中存在投票机制,来确定某一个节点是否真的出现了故障(集群节点个数最好是2n+1)
Redis集群提供了16384个hash槽用来存储数据,在用户存储数据时,需要对key进行crc16的运算,将结果对16384进行取余,存储到维护指定hash槽的节点上即可。
为了避免Redis节点出现故障,每一台Redis节点都至少要有一个从节点【备份数据】
某一个hash槽丢失,Redis集群瘫痪
连接Redis集群
redis-cli客户端:添加-c,保证可以在集群间跳转
图形化界面:连接任意一个Redis集群,即可连接整个Redis集群
jedis:JedisCluster对象连接Redis集群即可
8.Redis常见问题
删除策略:
定时删除:Redis针对设置了生存时间的key,会每100ms查看三个key的生存时间是否到期,如果到期,删除当前key
惰性删除:从Redis获取数据时,会查看当前key的剩余生存时间,如果生存时间已经到期,直接删除,当前key返回一个空
淘汰机制:
缓存常见问题:
缓存穿透:缓存没有数据,数据库也没有数据,大量请求访问数据库,数据库宕机
缓存击穿:缓存中的热点数据到期了,导致大量请求同时访问数据库,导致数据库宕机
加锁、访问一次加一次生存时间
缓存雪崩:缓存中大量数据同时到期,大量请求同时访问数据库
设置不同访问时间,加锁,访问一次加一次生存时间
缓存倾斜:大量请求同时访问Redis的超级热点数据,导致Redis宕机
tomcat中添加一级缓存,搭建主从(氪金)
双写一致性:在修改数据库,并同步都缓存时,存在数据安全问题
双删策略:处理双写一致性,1.在修改数据库之前,先删除缓存中数据,在修改数据库成功之后,2.延迟几秒再次删除缓存中的数据