REdis

Redis

Redis中的淘汰策略分为6种:
从以设置过期时间的数据集中挑选最少使用的数据淘汰
从以设置过期时间的数据集中挑选将要过期的数据集中任意挑选快要过期的数据淘汰
从以设置过期时间的数据集中任意选择数据淘汰
从数据集中挑选最少使用的数据淘汰
从数据集中任意选择数据淘汰
禁止驱逐数据

缓存击穿:当缓存中的某一个key失效了,就会导致大量的用户直接去访问数据库。在这里插入代码片
缓存穿透(查不到数据导致的):
比如用户去redis中查询一个key为-1的数据,而redis缓存和mysql中都没有查询到这个数据,
如果服务器大量的接收到了这种请求,就可能会造成服务器宕机:

解决方案:布隆过滤器,

使用布隆过滤器。在缓存之前在加一层布隆过滤器,在查询的时候先去布隆过滤器查询 key 是否存在,如果不存在就直接返回,存在再查缓存和DB。

缓存击穿(查询量太大,redis缓存又过期):
有大量的用户请求去获取redis缓存中一个刚好过期的数据,
由于缓存过期,就会去访问数据库查询数据,这时就会使数据库瞬间压力过大造成缓存击穿。

解决方案:分布式锁,保证对于每个key同一时间只有一个线程去查询数据库

redis中的数据都保存在内存中,如果服务器关闭或宕机则内存资源直接丢失,
持久化原理说明:
redis中有默认的缓存持久化策略

redis启动时根据Redis.conf配置文件中指定的持久化配置进行持久化的操作.redis.conf持久化配置默认使用RDB模式,将内存中的缓存数据持久保存在rdb文件中. 永远只记录当前的状态。

1.RDB: rdb模式采用定期的持久化方式,风险,可能丢失数据,rdb模式记录的是当前redis的内存记录快照
1.1 save ,立即马上持久化
1.2 bgsave,

2.AOF
2.1:aof模式默认是关闭状态,如果需要则手动配置文件开启
2.2AOF能够记录程序的操作执行状态,可以实现数据的实时持久化,
嗯嗯

AOF模式开启之后RDB模式将不会生效了

总结:1.默认的RDB模式是将缓存中的当前数据持久保存在rdb文件中。(记录的是内存数据的快照)
2.而AOF模式是实时的将对redis的执行操作保存在aof文件中。(记录的是执行过程,可以实现数据的实时持久化)

如果允许数据少量的丢失,则首选RDB,如果不混徐丢失则使用AOF模式

Redis的内存优化策略
1.LRU

Redis分片机制
主要的目的是为了实现内存的扩容,分片机制,
准备多台redis来为存储的数据扩容,每台redis存储的数据都是不相同的,
准备3个配置文件,redis启动都是根据.conf配置文件启动的,每一台redis对应一个配置文件

在多台redis中存取数据是用一致性HASH算法存取的

Redis集群,主从复制,

减轻单台reids服务器的压力,
主从复制的作用主要包括:
1.可以实现数据的热备份,主redis的数据复制到从的redis中
2.当主节点redis出现故障,可以切换从节点来提供服务,
3.负载均衡,可以读写分离,可以由主节点提供写服务,从节点提供读服务

哨兵:需要开启配置文件开启哨兵 sentinel.conf 配置文件在redis根目录下
当主机宕机之后,由从机自动的实现故障迁移,用户的访问 不受任何影响(主机将数据同步给从,当主机宕机后,链接从机,)

查看主从信息 info replication
实现主从的配置 :命令,redis端口下执行
slave of 主机IP 主机端口

主从配置问题说明:
当redis服务器已经配置了主从结构之后
如果将从服务器宕机,之后再次重启,则发现服务器又会变为主机,
因为执行了主从挂载的命令,该命令只会保存在内存中,当redis服务器重启之后,该命令就会失效,如果想一直保持主从的关系,则必须将主从的结构写入Redis.conf配置文件中(前提是先配置好了主从结构)

由哨兵机制来维护主从结构,
监听主机,如果主机宕机了,会有心跳检测机制PING PONG来判断主机是否还存活,连续3次检测, 发现连不通就会进行选举。选一台redis作为主机,然后从主机就会变成新从主机的从关系

哨兵配置文件
#保护模式关闭,no表示不开启保护模式,允许别人远程连接
17 protected-mode no

图片中 26行表示可以后台开启,31行表示…
在这里插入图片描述
84行表示哨兵要监控的主机的信息,master表示主机的变量名,
master后面配置的是监控的主机的host和端口号,2表示投票,选举投票生效的票数
在这里插入图片描述

在这里插入图片描述

选举的超时时间的设定:如果当选主机的服务器没有在规定的时间完成切换,则哨兵重新选举.在这里插入图片描述
启动哨兵:redis-sentinel sentinel.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值