要保证Redis不会挂掉,也就是提高Redis的高可用性,可以从这么几个方面考虑。
Redis单副本:也就是只部署一台Redis,不需要节点之间的数据同步,架构简单,部署方便;但是单台机器毕竟是有风险的,按照题目中【海量数据】的场景,是不能达到高可用要求的。
Redis主从:主从实例可以部署在不同的物理服务器上,充分利用多台服务器的资源,在主库发生故障的时候,可以进行主备切换,从而保证系统的稳定运行,甚至可以做到读写分离,主库专门用作写操作,一台或多台备库进行读操作;但是当主库发生故障的时候(如果没有HA方案的话),是需要手动进行主备切换的。
Redis Sentinel:部署架构分为两部分【Sentinel集群】和【数据集群】;Sentinel集群是由多个Sentinel节点组成的分布式集群,通常是2N+1台服务器,可以实现故障发现和转移、客户端通知等功能;数据集群用于存储数据;它能够解决主从模式下的自动切换问题,并且数据集群是可以横向扩展的;当然这个架构实现和部署起来,也更为复杂一些;并且这个架构不能做到读写分离。
Redis Cluster:Redis 3.0集群,是分布式集群解决方案之一,物理架构中配置2N个节点(主从一一对应),主节点提供读写操作,从节点作为备份;数据分布保存在多个节点上,是一种无中心的架构,如果有部分节点发生故障,能够实现故障自动转移和切换,用投票机制完成备库升级为主库(下文的Redis分片章节,还会介绍到Redis Cluster)。
海量数据下正确的访问redis要注意的事情有很多,基本上可以从服务治理,数据,redis正确使用三个方面来讲。
既然是海量数据,那么服务肯定要拆分成多个服务,最常见的采用“大中台,小前台”的概念,中台分各个服务中心,各个中心去维护自己中心负责的服务,向上游前台提供数据和服务。比如一个做内容付费的公司可以有内容中心、商品中心、交易中心
用户中心、促销中心、基础中心、开放平台等,中心之间采用RPC通信或者数据共享。
在做好服务治理和数据划分的基础上,这个时候就是重点讲如何正确使用redis的时候了,个人列举了部分细则仅供大家参考:
熟练使用五种数据结构(String、Set|、Hash、List、ZSet)以及每种数据结构的适用场景和注意事项;
防止缓存雪崩,即避免大批量缓存同一时间段集中过期,导致大量请求都怼到数据库上,导致数据库连接数爆满、宕机;
防止缓存穿透,避免redis中热点key存入了null或者不存在,导致大量请求绕过redis请求数据库去了;
避免大key的存在:比如一个redis集群是16G,共8个节点,每个节点平均分配2G的内存,这时候如果有一个大的hash key占用内存超过2G了,这个时候尽管集群还有剩余的空间,这个大key的写入依旧会失败,单个key是无法做到集群的,另外再想想如果一个hash存储了大量的数据,考虑一下性能问题?
禁止使用keys、flushall、flushdb等,运维同学通过redis的rename机制禁掉命令,或者使用scan的方式渐进式处理;
批量读写redis请采用pipeline管道的方式;
会话缓存
Redis最明显的用例之一是将其用作会话缓存。与其他会话存储(例如Memcached)相比,使用Redis的优势在于Redis提供了持久性。尽管就一致性而言,维护高速缓存通常不是关键任务,但如果所有购物车会话都消失了,大多数用户将不会完全满意,现在他们会吗?
幸运的是,随着Redis多年来的发展,很容易找到有关如何正确使用Redis进行会话缓存的文档。甚至著名的电子商务平台Magento都有Redis的插件!
在基本会话令牌之外,Redis提供了一个非常易于操作的FPC平台。即使在重新启动Redis实例时,也可以恢复一致性,而磁盘持久性不会使用户看到页面加载速度的降低,这是非常麻烦的从类似PHP的本地FPC更改。
再次以Magento为例,Magento提供了一个插件,可将Redis用作全页缓存后端。
同样,对于在那里的WordPress用户,WordPress有一个名为wp-redis的超赞插件,可帮助您实现前所未有的最快页面加载速度!
利用Redis的内存存储引擎来执行列表和设置操作,使其成为用于消息队列的绝佳平台。对于习惯使用Redis进行推入/弹出操作与Python等编程语言中的列表进行交互的人,应该感到与Redis作为队列进行交互。
如果您对“ Redis队列”进行快速的Google搜索,您很快就会发现那里有大量的开源项目,这些项目旨在使Redis成为满足所有排队需求的出色后端实用程序。举例来说,Celery的后端就是使用Redis作为代理。
还有就是Redis的发布/订阅功能。Pub / Sub的用例确实是无限的。我见过人们将其用于社交网络连接,基于Pub / Sub事件触发脚本,甚至使用Redis Pub / Sub构建的聊天系统!
到此,以上就是小编对于redis关闭只读模式的问题就介绍到这了,希望这2点解答对大家有用。
当前名称:海量数据下如何正确访问Redis服务才不会挂掉?(redis怎么禁止全部查看)
网址分享:http://www.mswzjz.cn/qtweb/news11/374611.html
温江区贝锐智能技术服务部_成都网站建设公司,为您提供网站设计、建站公司、网站内链、App设计、python、静态网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能