redis 是单线程处理的,不存在脏数据,一个线程,io多路复用原则;
监听redis key 过期后 做处理:
SpringBoot监听Redis的Key过期事件
事务操作:
1.Multi 开启事务;
2.EXEC 提交事务;
3.Watch 监听一个或多个key,若有变化则不可提交事务(乐观锁);
4.Discard取消提交事务
Redis 的持久化方式(redis.conf 配置中设置的):
aof(增量同步,极力推荐) rdb(全量同步,不推荐)
总结:
redis主从实现:
一主(读写)多从(只能读):主redis将数据同步到从redis,会使主redis压力很大(不可取)。
树状主从:主下面有两个从,然后各个从下面都有n个从,如:主-从(主)-从(主)-从。
redis哨兵机制(只为了做重新选举 主redis并从redis重新指向新的主redis):
每个redis一个哨兵,所有都指向主redis,用于ping主redis看是否宕机。逻辑:当主redis宕机,各哨兵会ping主redis是否真的宕机(ping不通),当各哨兵数量确认宕机的数量大于配置中的数值,则会自动选举其中一个redis作为主redis,但是当之前宕机的主redis,重新启动后,是不会重新作为主redis,且哨兵会因为重新选举后,自动修改配置文件(哨兵)指向重新选举的主redis,若需要该从redis重新指向新的主redis,需要在redis.conf配置文件中添加连接密码,保证可以连上新的主redis,并重启从redis;
Redis缓存穿透、缓存雪崩、redis并发问题分析
redisCluster(推荐):
1.可以实现快速扩容与缩容(添加redis以及重新分片/卡槽)
2.也可以做主从重新选举;