图解Redis-Redis更新策略-缓存一致性问题 (图解热电偶标识牌)

教程大全 2025-07-20 03:16:31 浏览

一、为什么Redis集群的最大槽数是16384个?

2^14^=16384、2^16^=65536。

如果槽位是65536个,发送心跳信息的消息头是65536/8/1024 = 8k。

如果槽位是16384个,发送心跳信息的消息头是16384/8/1024 = 2k。

因为Redis每秒都会发送一定数量的心跳包,如果消息头是8k,未免有些太大了,浪费网络资源。

上面提过,Redis的集群主节点数量一般不会超过1000个。集群中节点越多,心跳包的消息体内的数据就越多,如果节点过多,也会造成网络拥堵。因此Redis的作者Salvatore Sanfilippo不建议Redis Cluster的节点超过1000个,对于节点数在1000个以内的Redis Cluster,16384个槽位完全够用。

Redis主节点的哈希槽信息是通过bitmap存储的,在传输过程中,会对bitmap进行压缩,bitmap的填充率越低,压缩率越高。

bitmap 填充率 = slots / N (N表示节点数)。

也就是说slots越小,填充率就会越小,压缩率就会越高,传输效率就会越高。​

由于数据量过大,单个master复制集难以承担,因此需要多个master进行承担工作,每个master存储部分数据,这就是Redis集群。

Redis集群包含多个master,一个master对应多个slave,由于集群自带故障转移机制,因此Redis集群不用再使用哨兵sentinel功能。

Redis Cluster是Redis3.0引入的一种无中心化的集群,客户端可以向任何一个节点通信,不同节点间的数据不互通,Redis Cluster将数据的key通过将CRC16算法的结果取模16383后,分给16384个slot槽,集群的每个节点负责一部分hash槽,节点只负责管理映射到这个槽的KV数据,对于不是当前槽的KV数据,会向客户端发送一个MOVED,表示需要客户端重新重定向到其它节点。

使用Redis集群时,我们将需要存储的数据分配到多台Redis 服务器 上,称为分片。

对key进行CRC16(key)算法处理并通过对总分片数量取模,然后使用确定性哈希函数,将指定的key多次映射到同一个分片上。这种模式下,在进行服务器扩容的时候,不会影响集群的使用状态。

缓存一致性问题

Redis集群不保证强一致性,在特定条件下,Redis集群可能会丢掉一些命令。

哈希取余分区的优点是分配均匀,使用hash(key)/3的形式让固定的一部分请求存入指定的master,每台master处理一部分数据,起到了负载均衡的效果。

哈希取余分区最大的缺点就是不方便扩容,当需要扩容时,映射关系需要进行重新计算。

(1)一致性哈希算法是什么?

一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题。在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题。

一致性哈希算法将整个哈希值空间映射成一个虚拟的圆环,整个哈希空间的取值范围为0~2^32^-1,整个空间按顺时针方向组织,0~2^32^-1在零点中方向重合。

接下来使用如下算法对服务请求进行映射,将服务请求使用哈希算法算出对应的hash值,然后根据hash值的位置沿圆环顺时针查找,第一台遇到的服务器就是所对应的处理请求服务器。

当增加一台新的服务器,受影响的数据仅仅是新添加的服务器到其环空间中前一台的服务器(也就是顺着逆时针方向遇到的第一台服务器)之间的数据,其他都不会受到影响。

综上所述,一致性哈希算法对于节点的增减都只需重定位环空间中的一小部分数据,具有较好的容错性和可扩展性。

(2)一致性哈希算法的优点

(3)一致性哈希算法的缺点

当服务节点太少时,容易造成数据倾斜,分配不均。

大量的缓存数据集中到了一台或者几台服务节点上,称为数据倾斜。

1、如果Redis中有数据,需要和数据库中的值相同。

2、如果Redis中无数据,数据库中的最新值要对Redis进行同步更新。

写入数据库也同步写Redis缓存,缓存和数据库中的数据一致;对于读写缓存来说,要保证缓存和数据库中的数据一致,就要保证同步直写策略。

某些业务运行中,MySQL数据更新之后,允许在一定时间后再进行Redis数据同步,比如物流系统。

当出现异常情况时,不得不将失败的动作重新修补,需要借助rabbitmq或kafka进行重写。

多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。

其他的线程走到这一步拿不到锁就等着,等第一个线程查询到了数据,然后做缓存。

后面的线程进来发现已经有缓存了,就直接走缓存。

(){.();(){;} (.){// 重新尝试从Redis缓存中读取.();(){;}.();.(,,);;}}

七、数据库和缓存一致性的更新策略

按照常理出牌的话,应该都是如此吧?那么,这种情况下,会有啥问题呢?

如果更新数据库成功后,更新Redis之前异常了,会出现什么情况呢?

数据库与Redis内缓存数据不一致。

2、先更新缓存,再更新数据库

多线程情况下,会有问题。

比如

结果呢,Redis=100、MySQL=200;我擦!

3、先删除缓存,再更新数据库

完蛋了。。

延时双删

延时双删可以解决上面的问题,只要sleep的时间大于线程2读取数据再写入缓存的时间就可以了,也就是线程1的二次清缓存操作要在线程2写入缓存之后,这样才能保证Redis缓存中的数据是最新的。

延迟双删最大的问题就是sleep,在效率为王的今天,sleep能不用还是不用为好。

你不睡我都嫌你慢,你还睡上了…

4、先更新数据库,再删除缓存

问题还是有,这翻来覆去的,没完没了了。

这种情况如何解决呢?

引入消息中间件解决战斗,再一次详细的复盘一下。

哪吒推荐使用第四种方式,先更新数据库,再删除缓存。

方式①和方式②缺点太过明显,不考虑;方式③中的sleep,总是让人头疼;方式④是一个比较全面的方案,但是增加了学习成本、维护成本,因为增加了消息中间件。

1、当 master 主服务器上的数据发生改变时,则将其改变写入二进制事件日志文件中。

2、salve 从服务器会在一定时间间隔内对 master 主服务器上的二进制日志进行探测,探测其是否发生过改变。

如果探测到 master 主服务器的二进制事件日志发生了改变,则开始一个 I/O Thread 请求 master 二进制事件日志。

3、同时 master 主服务器为每个 I/O Thread 启动一个dump Thread,用于向其发送二进制事件日志。

4、slave 从服务器将接收到的二进制事件日志保存至自己本地的中继日志文件中。

5、salve 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致。

6、最后 I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒。


企业怎么选择连锁经营模式

所谓连锁经营,是指在流通领域中,若干同业商店以统一的店名、统一的标志、统一的经营方式、统一的管理手段连接起来,共同进货、分散销售,共享规模效益的一种现代组织形式和经营方式其实质是把现代化的大生产的原理应用于商业流通领域,达到提高协调运作能力和规模效益的目的发展连锁经营,可以改变我国商业中陈fl!的经营观念,落后的经营管理模式,改变低效率的物流运作方式,完善经营机制,为商业企业的经营管理注入新的活力可以促进大流通、带动大生产,改进传统商业,提升流通产业竞争力,推进流通现代化,从而提高企业工作效率和经济效益,增强竞争力连锁经营在我国沿海地区和部分大、中城市已经起步,而且发展速度逐步加快,日益显示出其经营优势已成为我国零售业、餐饮业和服务业普遍应用的经营方式和组织形式,并加快向汽车、医药、烟草、家居建材、加油站等多业种渗透,显示出厂强大的生命力和发展潜力 连锁经营的优势是明显的,主要表现在理论和物流管理两个方面: 一、连锁经营的理论优势 1、优化资源配置连锁经营的“八个统一”是基本的要素:统一店名,统一进货,统一配送,统一价格,统一服务,统一广告,统一管理,统一核算实现这些统一,就使商业企业在经营管理方面互相协调起来,因而有利丁资源的配置,使得企业资源共享,不会出现浪费现象,既节约厂费用,又提高}一作效率和效益 2、提高市场占有率连锁经营要想实现规模效益,必须在分店的设置上多动脑筋在合适的地理环境中,开设数量合适的分店,这样可以扩大企业的知名度,打‘大产品的销售量,从而提高产品的市场占有率连锁经营的规模效益不容忽视,这是发展连锁经营必须重视的关键问题规模效益正是连锁经营最吸引人的优势 3、强化企业形象良好的企业形象可以给企业带来巨大的收益,连锁经营企业通常选择统一的建筑形式,进行统一的环境布置,采用统一的色彩装饰,设计统一的商徽、广告语、吉祥物等,这种形象连锁是一种效果极佳的公众广告企业要实现规模效益,就要在各地开设分店不同地区的顾客,反复接受同一信息的刺激,久而久之,会由陌生到熟悉,再到认可,进而发生兴趣,这对丁树立与强化企业形象极其有利连锁经营企业的}一作人员,统一着装,包装物上统一印刷图案,这些都能给顾客一种整洁、规范的感觉,使顾客愿意光临,而且通过顾客无意识的宣传,提升厂企业在公众心目中形象,为企业赢得良好的社会效益奠定厂坚实的基础 4、提高竞争实力连锁经营的各分店在资产和利益等方面的一致性,使得连锁企业可以根据各分店的实际情况投入适当的人力、物力、财力来实施经营战略,可以对原先独有的销售措施、广告策划、硬件设施进行不断的改革与创新,使整个连锁企业的经营管理能力始终保持在一个很高的水准上;同时,灵活的经营管理又使连锁企业的优秀管理制度、方法、经验能迅速有效地在各连锁分店内贯彻实施,这些都大大加强厂连锁企业的总体竞争力 5、降低经营费用连锁经营企业以顾客自我选购、自我服务的经营方式为主,减少厂售货劳动,因而雇员相对较少,节省厂}一资成本,节约厂场地费用在连锁超市中,商品明码标价,顾客可以自由挑选,顾客节省厂购物时间,也节省厂企业的经营成本同时,加快厂顾客的流通速度,增加厂客流量总之,连锁经营与非连锁经营在总成本费用上的差距很明显我们对同样数量的两种企业进行抽样调查显示,连锁经营企业的费用较之其他零售商场约低10个白一分点 6、引导生产领域连锁经营企业通过扩大规模而增加效益企业在各处设立分店,商圈很)’一,因而对众多消费者的需求有比较全面、客观的厂解进货时,可根据顾客需求,结合市场供求来大批量进货这样一来,连锁经营企业在市场中占有极其重要的地位,成为连接生产与需求的桥梁生产商可根据企业进货的数量、种类等来进行生产,从而使生产与消费紧密挂钩,不致出现浪费生产资源和货物奇缺等情况 7,增加就业机会连锁经营企业的低成本、高效率使得所售商品价格大幅度明显降低,等丁增加厂消费者的可自由支配收入,使他们能更多地购买其他商品或服务,乃至进行其他方面的投资,从而扩大厂社会总需求从社会整体来看,必然会进一步促进社会各行业的就业人日总量的增加,增加厂就业机会 8、保护消费者利益要做到顾客至上,不仅要知道顾客的行为,还要分析他们的心理,他们付款的方式,以及他们对连锁企业的信任度要提供好的顾客服务,需要改进服务质量,对员}一进行商业培训要营造一个良好的购物环境连锁经营企业在管理上已日益完善,更趋向丁专业化、标准化、现代化、科学化、并使得购物环境更加舒适、宽敞;服务人员的素质日益提高;电子信息技术的应用使得}_作效率大大提高;明码标价降低厂消费者购物的心理成本,时间成本,体力成本,方便顾客的购买;商品质量得到保证,并且价格保持在较低的范围内,让消费者买得放心,买得舒心连锁经营企业的种种经营措施和经营策略,都从不同角度,不同层面上保护厂消费者的利益 二、连锁经营的物流管理优势 1、连锁经营物流的系统化连锁经营物流系统是由采购、仓储、流通加}_、装卸、配送和信息处理六个功能构成这些功能相互作用、相互联系、相互制约,它们各自特定的功能有机地结合起来、协调运行、共同产生出新的总功能,这个总功能再去协调各个子系统,从而使各子系统在相互联系、相互影响、相互制约中保持协调一致,在发挥各自特定功能的基础上形成系统的总功能,实现商品的流动 2、连锁经营物流的合理化连锁经营物流的系统化是其物流合理化的基础,而物流合理化则是整个连锁经营物流管理所追求的目标首先,物流合理化可以降低物流费用,减少商品销售成本其次,物流合理化可以压缩库存,减少流动资金的占用,更为重要的是,通过物流可以提高企业的管理水平 3、连锁经营物流的标准化物流是一个大系统,这样一个大系统的管理是非常复杂的,系统的统一性、一致性和系统内部各环节的有关联系是系统能否生存的首要条件标准化是物流管理的重要手段,物流标准化能加快流通速度,保证物流环节,降低物流成本,从而较大地提高经济效益 4、连锁经营的核心—配送中心配送是指以客户的需求为先导,围绕商品组配与送货而展开的接受汀货、预先备货、分拣加}_、配货装货、准时送货通货等一系列服务}_作的总称配送中心是承担物流专业化管理职能的组织机构,它是连锁经营的核心这是因为连锁经营的集中化、统一化管理在很大程度上是靠配送中心来具体实施的,通过配送中心的作业活动,不仅可以简化门店的活动,从而降低连锁企业的物流总费用,而且还能实现商品在流通领域中的增值,并向门店提供增值服务 因此,国外的很多企业都努力提高连锁企业的经营水平,以期为全面开进中国市场作好充分的准备面对现实,我国的连锁经营决不能坐以待毙努力发展连锁经营,其意义不仅仅在丁发展我国的经济,更重要的是,在发展的过程中可以借鉴国外先进的管理经验,先进的技术,甚至可以利用国外的优秀人才在竞争的过程当中,不断吸取教训和经验,为我国连锁经营的进一步发展做好充分的准备}一作入世后的竞争是残酷的,也是全方位的,是观念、技术、管理方法、人才等的综合竞争,发展连锁经营势在必行

科技论文写作的5c原则指的是什么

科研思维和论文写作的五大原则,包括评判性(critical)、一致性(consistent)、简洁性(concise)、清晰性(clear)和完整性(complete),以期为年轻学者和在读博士生的科研思维训练和规范提供参考。

中考语文记叙文答题技巧和模式

记叙文阅读答题技巧和模式记叙文阅读中语言的表达作用题(总的从内容和结构两方面来考虑,根据实际灵活应变)三种类型:加点词的表达作用,划线句的表达作用,段落的作用1、加点词的表达作用基本题型:下列句中加点词有什么表达作用?答题思路和方式(不用考虑结构上的);——的词写出了——(结合本词特点,概括内容)。 表现了——(注意联系中心,写作目的和思想感情)[内容方面]2、划线句的表达作用基本题型:文中…句子(关于…的描写)有什么表达作用?答题思路和方式(结构上的作用明显就写,不明显不要强求):写出了——(内容的精准概括)。 表现了——(注意联系中心,写作目的和思想感情)[内容方面];为(与)上(下)文的——作铺垫(作对比),或承上启下(引出下文)等[结构方面]。 3、段落的作用基本题型:文章第…段在文中有什么作用?答题思路和方式(内容和结构的作用两者必写):写出了——(内容的精准概括),表现了——(注意联系中心,写作目的和思想感情)[内容方面],结构上的作用根据段落所在的位置来灵活确定。 ●记叙文阅读中与作手法的表达作用题基本题型:文中…运用了对比(连续反问、设问、引用…)的手法,具有什么样的作用?答题思路和方式:写出了——(找到运用该种写法的相关语句,对其内容作精准概括),表现了——(注意联系中心,写作目的和思想感情)▲语句或段落在文章篇章结构上的作用:开头:总起全文、引起下文、埋下伏笔(作铺垫)、点题等(附加:激发兴趣,设置悬念)中间:作铺垫、承上启下(过渡)结尾:前后照应、首尾呼应、总结全文、点题、点明中心,深化中心、升华中心等●记叙文阅读中的评议赏析题基本题型:本文有关…的描写生动、传神。 请从下列例子中选择两例进行具体赏析。 答题思路和方式:四要素:写作方法+引用的关键词+句意内容的精要概括+写作目的、作者情感(中心)形式:运用了——(手法),通过——(关键词)的描写,写出了——(句意内容概括),表现了——(目的、情感)概括写作目的和情感时,除了可以用“表现了——”之外,还可用“表达了…抒发了…告诉了…呼吁了…赞美了…歌颂了…揭露了…鞭挞了…讽刺了…揭示了…反映了…”等,根据文章的实际情况,灵活概括写作目的和情感。 ●人物评价题和主题赏析题四要素:观点+材料+结构+文采人物评价题:基本题型:请你对文中的…人物作出评(赏)析(文中的…是一个怎样的人),请加以分析归纳。 答题思路和方式:文中的…是一个…的人(观点),从——(事例一材料)中,他——,体现出了他…的精神(品质)(分析)[分析中要强调你引用的材料和你观点的一致性],他的确是——(总结句)。 主题赏析题基本题型:关于本文的观点,有以下三种说法。 你同意哪一种?请简述理由。 答题思路和方式:我认为文章的主题是…(1)文章主要叙述(描写)了…(对文章的主要材料加以概括)表现出的是…(分析)(2)文章中的多处材料表现了这个主题。 例如第…节,作者写到“——”,体现的是——(分析);再如第…节中,作者又写到了“——”,这里又体现了——;又如第…节,作者写到“——”,体现的还是——。 故文章的主题是——。 (引用材料至少要有三处,分析中处处强调引用材料和观点的一致性)●自然环境描写(景物描写)句的主要作用:l、渲染…的气氛2、烘托人物…的形象(或人物…的心情、感情);3、为下文…作铺垫(埋下伏笔)4、推动情节发展●社会环境描写的主要作用:l、交代作品的时代背景。 2、在回答时必须结合当时当地的时代背景,指出文段中环境描写的相关语句揭示了什么样的社会现实。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐