首页
关 于
友 链
留言
更多
直播
壁纸
视频
推荐
导航页
个人图库
bing每日一图
视频去水印
网站监控
Search
1
Cuteen主题Mashiro同款LOGO
10465 阅读
2
Epic免费喜+15天,每天一款免费游戏!
8792 阅读
3
Nginx能做什么?
5922 阅读
4
Windows微信多开软件
5634 阅读
5
Cuteen主题侧栏添加人生倒计时
5510 阅读
文章
Search
标签搜索
epic喜+1
Cuteen
Cuteen主题
美化
Linux
生活
壁纸
SQL
steam
CentOS
Redis
Windows 10
耳机
EMUI11
软件教程
旅游
动漫壁纸
南京大屠杀纪念日
雪
TypechoL
J的故事
累计撰写
54
篇文章
累计收到
59
条评论
首页
栏目
文章
页面
关 于
友 链
留言
直播
壁纸
视频
推荐
导航页
个人图库
bing每日一图
视频去水印
网站监控
搜索到
2
篇与
Redis
的结果
2020-12-31
Redis 缓存穿透和雪崩
缓存穿透概念缓存穿透的概念很简单,用户想要查询一个数据,发现一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向吃就层数据库查询,发现也没有,于是本此查询失败。当用户很多的时候,缓存没有命中(秒杀)于是都去请求持久层,这会给持久层数据库造成了很大的压力,这时候造成了很大的压力,这时候就相当于出现了缓存穿透。解决方案布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以参数以hash形式储存,在控制层先进行校验,不符合那么将丢弃,从而比米娜了对地城储存系统的查询压力缓存空对象当储存层不命中后,即使返回的空对象也将其缓存起来,同时会设置一个国企时间,之后再访问这个数据将会从缓存中回去,保护了后端数据源;但是这种方法会存在两个问题:如果控制能够被缓存起来,这就意味着缓存需要更多的空间储存键,因为这当中可能会有很多的空值键即使空值设置了过期时间,还是会存在缓存层和储存层的数据会有一段时间的窗口不一致,这对需要保持一致性的业务会有影响缓存击穿概述这里需要注意缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这个点进行访问,当这个key在失效孙坚,次序的大并发就穿破缓存,直接请求数据库,就像在一个屏障上打开了一个洞。当某个key在过期孙坚有大量的并发访问,这类数据一般是热点数据,由于缓存过期,会同时访问数据库来查询最新数据,并写入缓存,会导致数据库瞬间压力过大!解决方案1.设置热点数据永不过期从缓存方面来看,没有设置过期时间,所以不会出现热点key过期后产生的问题。2.加互斥锁分布式锁:使用分布式锁,保证对于每个key同时只有一个线程去查询后端服务,其他线程没有获得分布式锁的权限,因此只需要等待即可。这种方式将高并发的压力转移到了分布式锁,因此对分布式锁的考考验很大。缓存雪崩概念缓存雪崩是指,缓存层出现了错误,不能正常工作了。于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。解决方案redis高可用这个思想的含义是,既然有可能挂掉,那我们就增加设置几台redis,这样一台挂掉之后其他的还可以继续工作,其实就是搭建的集群。限流降级这个解决方案的思想是,在缓存失效后,通过加锁或者队列来控制读数据库写缓存线程的数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。数据预热数据加热的含义就是在正式部署前,我们吧可能被访问的数据预先访问一遍,这样部分可能大量访问的数据就会加载到缓存中,在即将发生大并发访问前手动触发加载缓存不同的key,设置不同的过期时间,让缓存失效的时间尽量均匀一点。
2020年12月31日
5,080 阅读
0 评论
0 点赞
2020-12-30
Redis 哨兵模式
哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。多哨兵模式假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。测试!1.配置哨兵配置文件sentinel.confsentinel monitor myredis 127.0.0.1 6379 1后面的这个数字1,代表主机挂了,slave投票看让谁阶梯成为主机,票数最多的就成为主机/www/server/redis/src/redis-sentinel /www/server/redis/kconfig/sentinel #启动监控[root@iz2zeclwyjl1sk1uesu6z1z src]# /www/server/redis/src/redis-sentinel /www/server/redis/kconfig/sentinel 3383:X 23 Oct 2020 17:35:07.017 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 3383:X 23 Oct 2020 17:35:07.017 # Redis version=6.0.8, bits=64, commit=00000000, modified=0, pid=3383, just started 3383:X 23 Oct 2020 17:35:07.017 # Configuration loaded _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 6.0.8 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in sentinel mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 26379 | `-._ `._ / _.-' | PID: 3383 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 3383:X 23 Oct 2020 17:35:07.018 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 3383:X 23 Oct 2020 17:35:07.022 # Sentinel ID is ee42d4ff53ff3617a6287c1946b44e62ca621873 3383:X 23 Oct 2020 17:35:07.022 # +monitor master myredis 127.0.0.1 6379 quorum 1 3383:X 23 Oct 2020 17:35:07.023 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ myredis 127.0.0.1 6379 3383:X 23 Oct 2020 17:35:07.027 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ myredis 127.0.0.1 6379如果主节点宕机了,这是偶就会从从机中选举出来一个新的主机如果刚开始的主机复活了,那也只能当新选举的主机的从机,这就是哨兵模式的规则!哨兵模式优点:哨兵集群,基于主从复制,所有的主从配置优点他都有主从可以切换,故障可以转移,系统的额可用性就会更好哨兵模式就是主从模式的升级,手动到制动,更加健壮缺点:Redis不好在线扩容,集群容量一旦达到上线,在线扩容就十分的麻烦!实现哨兵模式的配置其实是很麻烦的,里面有多种选择
2020年12月30日
3,385 阅读
0 评论
0 点赞