一种基于哨兵的缓存访问策略

标签: 哨兵 缓存 访问 | 发表时间:2015-07-02 08:00 | 作者:
出处:http://yangxikun.github.io

学习自 一种基于“哨兵”的分布式缓存设计

通常的缓存访问如下,箭头表示访问量,且为同一时刻访问。

cache access

如果Redis缓存命中,那么web就不会访问数据库,否则,客户端有N个并发请求就会有N个对数据库的并发请求,伴随而来的可能会是N个Redis SET操作。

为了消除这种情况下多余的请求,减轻数据库压力,引入一个“哨兵”请求,即当缓存不命中时,只有一个请求能落到数据库上,其余请求等待缓存更新。

cache access

为了在并发请求中选出一个“哨兵”,对于一个缓存需要有一个计数器与其对应。以下是借助Redis实现的算法流程:

cache access

有一个需要注意的问题就是,上图中红框部分执行失败:例如MySQL无法访问了,那么count将会不断递增,即使MySQL恢复正常了也如此,因为没有请求的count会再次为1。解决办法:

  • 手动设置count为0;
  • 给count设置上限,当达到上限时设置count为0;
  • 将“=1”的条件判断改为类似“count%10=1”;

相关 [哨兵 缓存 访问] 推荐:

一种基于哨兵的缓存访问策略

- - 小火箭
学习自 一种基于“哨兵”的分布式缓存设计. 通常的缓存访问如下,箭头表示访问量,且为同一时刻访问. 如果Redis缓存命中,那么web就不会访问数据库,否则,客户端有N个并发请求就会有N个对数据库的并发请求,伴随而来的可能会是N个Redis SET操作. 为了消除这种情况下多余的请求,减轻数据库压力,引入一个“哨兵”请求,即当缓存不命中时,只有一个请求能落到数据库上,其余请求等待缓存更新.

Redis哨兵机制

- - 数据库 - ITeye博客
      哨兵(sentinel)是Redis高可用的解决方案,用来管理Redis实例,主要是监控、自动故障转移、通知、配置提供者.     1、sentinel的初始化.     当一个 Sentinel 启动时, 它需要执行以下步骤:.     a) 初始化服务器. sentinel本质上是一个运行在特殊模式下的Redis实例.

android如何让webview里的资源访问本地缓存

- - 移动开发 - ITeye博客
继承并实现一个ContentProvider. 注册AndroidManifest.xml. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

最频繁访问驻留缓存算法

- - ITeye博客
在搜索系统中,如何缓存搜索最频繁的1000个搜索结果. 自定制的精准短文本搜索服务项目代码. 本文利用了ConcurrentHashMap和AtomicLong实现了线程安全且支持高并发的最频繁访问驻留缓存算法,除了缓存功能,还提供了缓存状态查询接口,非常实用. 比如,在搜索管理界面可看到如下缓存状态:.

日访问量百亿级的应用如何做缓存架构设计

- - IT瘾-dev
中生代技术链接技术大咖,分享技术干货. 链接3000+技术总监/CTO, 每天早上推送技术干货文章. 微博日活跃用户1.6亿+,每日访问量达百亿级,面对庞大用户群的海量访问,良好架构且不断改进的缓存体系具有非常重要的支撑作用. 4月21日,中生代技术走进盒子科技的现场技术交流活动上,新浪微博技术专家陈波为大家讲解了微博Cache架构的设计实践过程.

山西兴起网络红哨兵

- 晓聪 - Solidot
张嘎 写道 "为了杜绝网上有损党和国家形象的言论,特别是针对山西省和山西国有企业的攻击性言论,山西省国有资产监督管理委员会16日下发通知,决定发动省属企业团员青年展开“网络红哨兵”活动. “红哨兵”们将收集、上报网上不良言论,以“红”压“黑”,努力维护国家、山西及国企的良好形象.

限流降级神器-哨兵(sentinel)原理分析

- -
Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性. 大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢. Sentinel官网有一个对比的文章,这里摘抄一个总结的表格,具体的对比可以点此 链接 查看.

2011诺贝尔医学奖:发现免疫反应中的“哨兵”

- Mojio - 科学松鼠会
2011年10月3日,对于加拿大科学家Ralph Marvin Steinman的家人来说,注定是一个悲喜交加的日子. 瑞典卡罗林斯卡医学院在这一天宣布,Steinman与另两位分别来自美国和法国的科学家分享了 当年的诺贝尔生理学或医学奖,而万分遗憾的是,就在消息宣布前三天的9月30日,Steinman教授已经与世长辞.

spring集成redis——主从配置以及哨兵监控 - 大园子 - 博客园

- -
Redis的主从模式配置是非常简单的,首先我们需要有2个可运行的redis环境:. 我们只要在slave 节点的配置文件中,找到 slaveof开头. 然后修改为:(master的ip与端口). 这样就可以了,下面我们来验证一下,首先启用master和slave的redis服务,然后登录redis-cli,输入info.

缓存算法

- lostsnow - 小彰
没有人能说清哪种缓存算法由于其他的缓存算法. (以下的几种缓存算法,有的我也理解不好,如果感兴趣,你可以Google一下  ). 大家好,我是 LFU,我会计算为每个缓存对象计算他们被使用的频率. 我是LRU缓存算法,我把最近最少使用的缓存对象给踢走. 我总是需要去了解在什么时候,用了哪个缓存对象.