当前位置: 首页 > news >正文

织梦网站logo更改北京代理记账公司

织梦网站logo更改,北京代理记账公司,德阳市建设局官方网站安全月,网站中图片下移怎么做前言 经历接近一年的开发、三个候选版本#xff0c;Redis 7.0终于正式发布#xff0c;这是Redis历史上改变最多的一个大版本#xff0c;它不仅包含了50多个新命令#xff0c;还有大量核心新特性与改进#xff0c;这些不仅能够解决用户使用中的诸多问题#xff0c;还进一… 前言 经历接近一年的开发、三个候选版本Redis 7.0终于正式发布这是Redis历史上改变最多的一个大版本它不仅包含了50多个新命令还有大量核心新特性与改进这些不仅能够解决用户使用中的诸多问题还进一步拓展了Redis的使用场景。 虽然Redis 7.0做了许多大胆的尝试但是稳定性依然是最重要的基石。Redis官方在7.0的GA博文中也强调这一点“While user-facing features are easy to boast of, the real “unsung heroes” in this version are efforts to make Redis more performant, stable, and lean.”虽然面向用户的功能更容易得到称赞但这个版本中的无名英雄是我们持续不断的对Redis的优化使其变得更加精简、高效、稳定。相信从这里可以看出Redis发展至今稳定性始终被摆在最重要的位置因此对于7.0的稳定性担忧大可打消。 下面请先跟随我们一同了解Redis7.0的几个核心新特性。 Redis7.0核心新特性概览 Function Function是Redis脚本方案的全新实现在Redis 7.0之前用户只能使用EVAL命令族来执行Lua脚本但是Redis对Lua脚本的持久化和主从复制一直是undefined状态在各个大版本甚至release版本中也都有不同的表现。因此社区也直接要求用户在使用Lua脚本时必须在本地保存一份这也是最为安全的方式以防止实例重启、主从切换时可能造成的Lua脚本丢失维护Redis中的Lua脚本一直是广大用户的痛点。 Function的出现很好的对Lua脚本进行了补充它允许用户向Redis加载自定义的函数库一方面相对于EVALSHA的调用方式用户自定义的函数名可以有更为清晰的语义另一方面Function加载的函数库明确会进行主从复制和持久化存储彻底解决了过去Lua脚本在持久化上含糊不清的问题。 那么自7.0开始Function命令族和EVAL命令族有了各自明确的定义FUNCTION LOAD会把函数库自动进行主从复制和持久化存储而SCRIPT LOAD则不会进行持久化和主从复制脚本仅保存在当前执行节点。并且社区也在计划后续版本中让Function支持更多语言例如JavaScript、Python等敬请期待。 总的来说Function在7.0中被设计为数据的一部分因此能够被保存在RDB、AOF文件中也能通过主从复制将Function由主库复制到所有从库可以有效解决之前Lua脚本丢失的问题我们也非常建议大家逐步将Redis中的Lua脚本替换为Function。 Multi-part AOF AOF是Redis数据持久化的核心解决方案其本质是不断追加数据修改操作的redo log那么既然是不断追加就需要做回收也即compaction在Redis中称为AOF rewrite。 然而AOF rewrite期间的增量数据如何处理一直是个问题在过去rewrite期间的增量数据需要在内存中保留rewrite结束后再把这部分增量数据写入新的AOF文件中以保证数据完整性。可以看出来AOF rewrite会额外消耗内存和磁盘IO这也是Redis AOF rewrite的痛点虽然之前也进行过多次改进但是资源消耗的本质问题一直没有解决。 阿里云的Redis企业版在最初也遇到了这个问题在内部经过多次迭代开发实现了Multi-part AOF机制来解决同时也贡献给了社区并随此次7.0发布。具体方法是采用base全量数据inc增量数据独立文件存储的方式彻底解决内存和IO资源的浪费同时也支持对历史AOF文件的保存管理结合AOF文件中的时间信息还可以实现PITR按时间点恢复阿里云企业版Tair已支持这进一步增强了Redis的数据可靠性满足用户数据回档等需求。 对具体实现感兴趣的同学可以查看本文末尾参考资料。 Sharded-pubsub Redis自2.0开始便支持发布订阅机制使用pubsub命令族用户可以很方便地建立消息通知订阅系统但是在cluster集群模式下Redis的pubsub存在一些问题最为显著的就是在大规模集群中带来的广播风暴。 Redis的pubsub是按channel频道进行发布订阅然而在集群模式下channel不被当做数据处理也即不会参与到hash值计算无法按slot分发所以在集群模式下Redis对用户发布的消息采用的是在集群中广播的方式。 那么问题显而易见假如一个集群有100个节点用户在节点1对某个channel进行publish发布消息该节点就需要把消息广播给集群中其他99个节点如果其他节点中只有少数节点订阅了该频道那么绝大部分消息都是无效的这对网络、CPU等资源造成了极大的浪费。 Sharded-pubsub便是用来解决这个问题意如其名sharded-pubsub会把channel按分片来进行分发一个分片节点只负责处理属于自己的channel而不会进行广播以很简单的方法避免了资源的浪费。 Client-eviction Redis支持内存规格配置maxmemory和maxmemory-policy大家已经都很熟悉了但是在这里我还是想再解释一下maxmemory控制的是Redis的整体运行内存而非数据内存例如client buffer、lua cache、fucntion cache、db metadata等这些都会算在运行内存中如果运行内存超过了maxmemory就会触发evict删除数据这也是用户在使用Redis时的一大痛点。 在这些非数据内存使用当中又以client buffer消耗最大在大流量场景下client需要缓存很多用户读写数据想象一下keys的结果需要先缓存在client output buffer中再发送给用户由于网络流量的内存消耗导致触发eviction删除数据的情况非常之多。虽然Redis很早就支持对 client-output-buffer-limit配置项但其限制的也只是单个连接维度的output buffer没有全局统计client使用内存和限制。为了解决这个问题7.0新增了maxmemory-clients配置项来对所有client使用的内存做限制如果超过了这个限制就会挑选内存消耗最大的client释放用来缓解内存使用的消耗。 Client-eviction并不是终点还有很多元数据的内存使用会对用户造成困扰Redis是基于内存的数据库我们需要对各个模块的内存进行更精确的统计和控制让用户能够对数据存储有更为清晰的理解和规划。 Redis历史回顾 Redis发展至今已历经7个大版本而每个大版本都有大量的新特性产生。例如从3.0开始支持cluster集群模式4.0开发的lazyfree和PSYNC2解决了Redis长久的大key删除阻塞问题及同步中断无法续传的问题5.0新增了stream数据结构使Redis具备功能完整的轻量级消息队列能力6.0更是发布了诸多企业级特性如threaded-io、TLS和ACL等大幅提升了Redis的性能和安全性。 国内开发者与Redis社区建设 感谢国内开发者中国区已经成为Redis社区最大的贡献来源之一 阿里云从Redis 4.0开始就深度参与到Redis开源社区当中向社区贡献了大量能力目前阿里云在Redis社区共有1名core team member核心维护者和2名contributor核心贡献者是原作者和Redis Labs以外对Redis社区贡献最大的组织。 我们见证了Redis用户在国内的快速增长阿里云与Redis社区的深度合作也逐渐吸引了更多的国内开发者参与到Redis建设中去。尤其是在Redis core team成立之后社区maintainer也和Redis一样变成了多线程1-5对于issue和PR的快速处理大幅提升了社区的活跃度。这次7.0的release note中也可以看到已经有超过5名国内开发者贡献了核心feature并贡献了近半数commit。 这些变化与我们在阿里云上的统计结果也是相符合的Redis目前同样也已是国内用户使用规模最大的NoSQL数据库之一并一直处于高速增长中越来越多的泛互联网甚至传统行业也在逐步接纳Redis用于快速高效的构建业务应用服务。 虽然Redis发展迅速但国内用户却大都无法享受技术红利 Redis社区目前主流维护版本是6.05.0版本已经进入低维护阶段而国内还有大量2.83.04.0版本在使用中。这就很矛盾一方面一些对用法性能稳定性和抖动控制的能力都贡献在了新版本上另一方面国内用户却“看的到用不上”。 除去6.07.0上的高级稳定性优化不说比如在4.0前没有lazyfree删除一个大key是同步的会卡住数据库引擎直接导致业务中断。又比如Redis其实安全性尤其是lua是一直有较大问题的这些升级也都“隐含”在了新版本中。虽然阿里云仍然在坚持把这些漏洞的修复拉回到低版本上但是在公网当中还是有大量的低版本实例存在安全风险。 过多用户担心升级版本的兼容性一方面阿里云也在要求社区来提供一些兼容性验证工具另一方面阿里云对版本跟进是很快的可以让用户在新版发布后尽快进行验证。从Redis整体和阿里云的大量客户升级情况来看版本的向前兼容性是非常好的大可放心升级。 希望更多的国内用户深度参与社区建设 国外使用Redis的方式和国内使用明显有差异比如国外更多的是使用在缓存场景而国内大多数的用法却是内存数据库。社区的发展和roadmap的制定目前国内用户的声音较小。 目前国内开发者在社区活跃度很高但更多的是围绕在bugfix和feature上。我们还是建议无论是国内开发者还是使用者可以深层参与进去举个简单的例子提需求、讲明白需求、证明需求的合理性都是参与社区建设这样才能更好的把我们国内的需求传达后续甚至可以深度参与开发跟踪交付这些社区工作的含金量无疑更高。 在功能上不仅仅包括API层面的增加包括接入可观测性一致性一致性和安全等目前社区都在等待需求中。虽然core team member可以代表国内用户来把一些需求写进roadmap但是真实用户的发声会提供更有力的支撑。 Redis使用场景拓展与展望--Redis还能做什么 多模服务进入爆发期 Redis是一直贴着用户使用发展起来的它如此受欢迎主要因为两个特点极高的性能以及丰富、方便使用的数据结构这些简单好用的数据结构能够大幅度降低开发业务复杂度。 我们可以看到以Redislabs为代表的厂商正在大力的丰富Redis的数据结构modules如RedisSearch、Redis-Json、RedisGraph、RedisTimeSeries和RedisBloom等。 同样的阿里云内存数据库Tair很早就在研发各类增强数据结构和模块目前我们在公共云Tair服务中提供的商业化扩展型数据结构比Redislabs提供的更多部分模块功能更强有兴趣可参见文档本文末尾参考资料。 目前已有大量云上用户在利用Tair增强型数据结构来构建代码提高开发效率甚至完成此前难以完成的工作。2022年是一个Redis扩展结构的爆发年业内已经渡过接纳期进入高速发展阶段。无论是Tair还是Redis我们相信不断丰富的数据结构能够让它们走的更远从缓存演变为高性能的计算型内存数据库突破、并解决更多场景问题。 一致性能力上的发展 落盘一致性和副本一致性是使用数据库绕不开的两个话题。长期以来许多人对Redis的应用场景仅仅认定为缓存尤其是国外用户。Redis自诞生之初便支持持久化机制RDB和AOF并且AOF还提供了不同级别的持久化语义如appendfsync采用最高级别always时可以保证数据完全落盘不丢失具备与传统数据库一样的强落盘一致性。 在多副本一致性上主要是指主备一致性上原生的Redis仍旧采用异步复制数据修改操作只要在本地执行完成就会返回结果相比于其他数据库没有提供副本间数据强一致的语义。这也限制了Redis的使用场景在对数据可靠性有极高要求的用户例如金融行业和传统行业中还没有被完全接纳。 目前业内也都在对Redis的持久化能力上进行发展。比较有代表性的是阿里云的Tair持久内存版、AWS的MemoryDB、和业内开源的一些Redis-like的基于rocksdb的系统商业化如Tair的容量存储版前混合存储。 表1: 社区Redis和其他商业化、开源产品的落盘一致性与副本一致性对比 注1与开源Redis社区版比较 注2与开源Redis基于内存的使用成本比较 注3,4来自AWS官方博客测试数据 综合来看随着用户对Redis的应用范围的扩大与此同时对于容量、成本和数据可靠性的需求也在不断提升这些也逐渐成为了衡量Redis企业级能力的重要指标。各大厂商和开源产品也都在构建这些能力上提出了许多解决方案。下面介绍一些典型产品和方案。 AWS的MemoryDB AWS MemoryDB的思路是基于类似Aurora的共享存储概念把日志存放在远端共享存储中同时内存中仍然保留Redis原有的结构。通过这种方式提升数据的持久化一致性同时也保证了数据读取的延时和吞吐而缺点则同样因为日志保存在远端写入性能严重下降仅有ElastiCache也即Redis社区版的15%~25%该数据来自AWS官方评测见本文末尾参考资料。在主备一致性上由于直接采取日志的物理复制所以主备一致性近似接近落盘一致性。 值得一提的是原来AOF rewrite这种压缩compaction引起的开销也因为在远端做掉而规避掉因此是一种很彻底的云原生解法。 阿里云自研内存数据库Tair 在持久化上阿里云走了另外一条路通过引入新介质持久化内存来解决成本大容量和持久化能力的问题。这个方案带来的挑战是使用持久化内存存储结构设计上较为复杂既要控制性能衰减又要保证兼容性。Tair持久内存很好的解决了这些问题对比MemoryDB成本更低读性能基本持平的情况下写入的速度也更快见本文末尾参考资料更关键的是基本原封原样的兼容了Redis API大幅降低了用户的切换成本。 并且Tair持久内存型还支持半同步和强写入一致性无论MemoryDB还是Tair持久内存都真正的做到了内存数据库的数据容错性要求。 其他开源产品的发展 国内也出现了一些原创性的优秀落盘开源产品Redis-Like系统这些产品大都基于LSM存储结构如rocksdb上的。它们的优点主要是磁盘介质相对内存更为便宜但同样目前存在的缺点也非常多运维复杂度较高直接映射为运维成本、KV无法原生的支持Redis的数据结构、把Redis的强类型变成弱类型等等。 目前这类系统在一致性和容错性上仍有很大的改善空间而在用户使用体感上由于很多用户使用习惯还是把Redis-like系统用在业务的同步链路上对于LSM KV引擎的延时上抖动整体吞吐的影响直接映射成了用户体感因此很难作为一款通用型产品而这些痛点也同样存在与Tair容量存储型中过去叫混合存储版这也是一个需要长期在存储和兼容性上优化的方向。 综上所述容量版本可以很好地解决用户的使用成本问题但是只有更好地解决了落盘一致性问题和副本一致性问题才能够把Redis类系统的使用场景拓展到企业级。这也是目前看来云厂商一个激烈竞争的企业级产品主流赛道也有较高的技术门槛。 写在最后 Redislabs在2021年8月正式更名为Redis大家看到社区版Redis的主页也已经重构修改过了。本身Redis的商业化进度非常快比如在主页上“夹带” Redis Stack又比如在github上将一众常用的SDK都购买后开始添加部分Redislabs商业化开源的支持等。最后Redis可能也会像MongoDBElasticSearch一样走向彻底的商业化。但目前社区仍是非常公开和活跃的。 Redis8.0的 feature计划已经开始一方面我们也如上文所述建议国内开发者更多的参与到深层次的社区讨论让社区更多的向国内使用习惯靠拢这对重度依赖Redis的国内企业情况是非常现实的另一方面能够通过社区参与来提升我们的人才竞争力除去持久化系统还有分布式架构高吞吐低延时核心引擎多模服务和脚本引擎安全与审计等都需要持续投入。如果国内在Redis领域也能够有1020名内存数据库的顶尖专家那么即便是Redis走向商业化闭源其影响对国内用户都会非常小。 最后欢迎大家使用Redis7.0也愿我们一起在Redis等内存数据库技术上走得更远 参考资料 【1】Redis 7.0 Multi Part AOF的设计和实现 https://developer.aliyun.com/article/866957 【2】Amazon MemoryDB 与 Amazon ElastiCache比较https://aws.amazon.com/cn/blogs/china/comparison-of-amazon-memorydb-and-amazon-elasticache/?nc1b_nrp 【3】Tair扩展数据结构概览https://help.aliyun.com/document_detail/146579.html 【4】Tair持久内存型性能白皮书https://help.aliyun.com/document_detail/185189.html 原文链接 本文为阿里云原创内容未经允许不得转载。
http://www.sadfv.cn/news/107668/

相关文章:

  • 在百度搜索到自己的网站企业网站主页设计
  • 企业网站做留言板有什么优势上海知名的网站公司
  • 手机网站开发源码wordpress搬家 图片不显示
  • 国外做汽配的网站wordpress文件上传 并发
  • 网站建设服务费下什么科目wordpress插件 二次开放
  • 建设新农村网站做网站工资高吗
  • 论坛网站建设推广优化app开发大概多少钱
  • 创建网站需要备案吗wordpress 备份 教程
  • 中企动力建站怎么样武威网站制作公司电话多少
  • 做运营必知网站owasp 网站开发
  • 二级域名做网站studio网站开发
  • 北京平台网站建设世界网站排名查询
  • 优秀设计网站大全企业管理系统排名
  • 计算机应用网站开发网站内容建设的原则
  • 崇义县网站建设wordpress充值密码没有链接
  • 北京城乡建设门户网站网站系统建设需要什么资质吗
  • 网站开发网站建设网站什么费用
  • 优秀网站建设公司html5网站强制横屏
  • 网站外链建设策略施工企业评价
  • 河北省城乡和建设厅网站河南建设教育协会网站
  • 哪个企业的网站做的比较好成都网站建设 小兵
  • 网站解决方案设计上海办公室设计装修公司
  • 仪征做网站aicjoy网站模版怎么样
  • 恒峰网站建设问题百度登录入口官网
  • 项目驱动式网页设计与制作教程湖南关键词优化快速
  • 用什么软件建网站最方便网站中信息更新怎么做的
  • 轴承 网站建设 企炬洛阳设计公司官网
  • 网站排版类型深圳网站建设51duoshi
  • 宁波网站建设设计图校园门户网站建设
  • 企业网站宣传建设网站建设简介联系方式