iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >应用实践:如何在分布式缓存中使用RT和WT?
  • 834
分享到

应用实践:如何在分布式缓存中使用RT和WT?

2023-06-05 06:06:15 834人浏览 薄情痞子
摘要

  随着应对大规模交易的WEB应用程序、SOA和其他服务器应用程序的爆炸式增长,数据存储无法跟上应用增长速度,因为数据存储无法继续添加更多服务器以扩展,这与可扩展性极高的应用架构不同。  在这种情况下,内存分布式缓存为数据存储瓶颈

  随着应对大规模交易的WEB应用程序、SOA和其他服务器应用程序的爆炸式增长,数据存储无法跟上应用增长速度,因为数据存储无法继续添加更多服务器以扩展,这与可扩展性极高的应用架构不同。

  在这种情况下,内存分布式缓存为数据存储瓶颈提供了极好的解决方案。它跨越多个服务器(称为集群)将内存集中在一起,并保持所有服务器之间的高速缓存同步,并且可以像应用程序服务器一样不断增长高速缓存集群,这减少了数据存储的压力,使其不再是可扩展性的瓶颈。

  分布式缓存主要有两种使用方式:

  ·Cache:这是应用程序负责读取和写入数据库的地方,Cache不与数据库交互。Cache“kept aside”为更快,更具可扩展性的内存数据存储。应用程序在从数据库读取任何内容之前需要检查Cache。并且,应用程序在对数据库进行更新后会自动更新Cache,保证应用程序可以确保Cache与数据库内数据的同步。

  ·read-through/write-through(RT / WT):这是应用程序将Cache视为主数据存储并从中读取数据向其写入数据的位置。缓存负责将这些数据读写到数据库,从而减轻应用负担。Read-Through,业务代码首先调用Cache,如果Cache不命中由Cache回源到SoR,而不是业务代码(即由Cache读SoR)。Write-Through,称之为穿透写模式/直写模式,业务代码首先调用Cache写(新增/修改)数据,然后由Cache负责写缓存和写SoR,而不是业务代码。

应用实践:如何在分布式缓存中使用RT和WT?
▲通读式/直写式缓存架构

  Cache-aside是一种非常强大的技术,即业务代码围绕Cache写,是由业务代码直接维护缓存,可以让用户进行复杂的数据库查询,包括连接和嵌套查询,并以任何用户想要的方式处理数据。尽管如此,Read-through / Write-through与Cache相比具有各种优势,如下所述:

  ·简化应用程序代码:在Cache-aside方法中,如果多个应用程序处理相同的数据,则应用程序代码将继续具有复杂性并直接依赖于数据库,甚至会重复执行代码。Read-through / Write-through将部分数据访问代码从应用程序移至Cache层,极大地简化了应用程序并更加清晰地提取数据。

  ·通过Read-through更好地实现可伸缩性:在许多情况下,缓存项到期并且多个并行用户线程最终触发数据库,将其与数以百万计的缓存项和数以千计的并行用户请求相乘,数据库负载明显变高。但是,当从数据库获取最新副本时,“Read-through”将cache-item保存至缓存中,同时从数据库中获取最新副本。最终结果是应用程序永远不会去数据库获取这些cache-items ,并且数据库负载保持最小。

  ·使用Write-behind获取更好得写入性能:在cache-aside中,应用程序直接同步更新数据库。Write-behind可让应用程序快速更新缓存并返回。然后,让cache在后台更新数据库。

  ·使用Write-behind更好地实现数据库可伸缩性:使用Write-behind,用户可以指定限制条件,因此数据库写入速度不会像缓存更新那样快,因此数据库压力不会太大。此外,用户可安排数据库写入在非高峰时段进行,再次将压力降至最低。

  ·到期自动刷新缓存:使用Read-through ,Cache可自动从数据库重新加载对象。这意味着应用程序不必在繁忙时间点击数据库,因为最新的数据总是在Cache中。

  ·数据库更改时自动刷新Cache:当数据库中相应的数据发生更改时,Read-through 允许Cache自动从数据库中重新加载对象。 这意味着缓存总是最新的,并且应用程序不必在繁忙时间点击数据库,因为最新的数据总是在Cache中。

  “读取/写入”(RT/WT)不适用于应用程序中的所有数据访问,最适合从数据库读取单个行或读取可直接映射到单个缓存项数据的情况。即使数据周期性变化,频繁读取也是在Cache中实现。

  开发Read-Through Handler

  Read-Through Handler向cache服务器注册,并允许cache直接从数据库读取数据。 NCache服务器提供了一个 Read-through handler接口。 这使NCache能够调用Read-through处理程序。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

  Start()执行某些资源分配任务,例如建立到主数据源的连接,而Stop()则意味着重置所有分配,Load是cache用于调用read-through对象的方法。

  开发Write-Through Handler

  当cache需要在更新缓存时写入数据库时,将调用Write-Through Handler。 通常,应用程序通过添加,插入或删除向cache发布更新。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

  Start()执行资源分配任务,例如建立到数据源的连接,而Stop()意味着重置所有分配, Save是缓存调用write-through对象的方法。

  从应用程序调用Read-Through和Write-Through

  以下示例代码展示了如何使用来自简单windows应用程序cache的read-through/write-through功能。

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

应用实践:如何在分布式缓存中使用RT和WT?

--结束END--

本文标题: 应用实践:如何在分布式缓存中使用RT和WT?

本文链接: https://www.lsjlt.com/news/241742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 应用实践:如何在分布式缓存中使用RT和WT?
      随着应对大规模交易的Web应用程序、SOA和其他服务器应用程序的爆炸式增长,数据存储无法跟上应用增长速度,因为数据存储无法继续添加更多服务器以扩展,这与可扩展性极高的应用架构不同。  在这种情况下,内存分布式缓存为数据存储瓶颈...
    99+
    2023-06-05
  • Java 数组如何在分布式缓存中使用?
    随着互联网的快速发展,数据量的不断增加,分布式缓存成为了解决高并发、高性能、高可用等问题的一种重要方式。在分布式缓存中,Java 数组是非常常见的数据结构之一。本文将介绍 Java 数组在分布式缓存中的使用方法。 一、Java 数组简介 ...
    99+
    2023-06-14
    数组 分布式 缓存
  • 如何使用redis实现分布式缓存
    本文小编为大家详细介绍“如何使用redis实现分布式缓存”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用redis实现分布式缓存”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • ASP 缓存和 JavaScript:如何实现分布式缓存?
    ASP缓存和JavaScript:如何实现分布式缓存? 在现代Web应用程序中,缓存是一个关键的组成部分,可以大大提高应用程序的性能。常见的缓存类型包括内存缓存、磁盘缓存和分布式缓存。本文将重点介绍ASP缓存和JavaScript如何实现分...
    99+
    2023-07-10
    缓存 javascript 分布式
  • ASP 缓存和 JavaScript:如何在分布式环境中缓存数据?
    在分布式系统中,缓存数据是一个非常重要的优化手段。ASP 缓存和 JavaScript 缓存是两种常见的缓存方式。本文将介绍如何使用 ASP 缓存和 JavaScript 缓存在分布式环境中缓存数据。 一、ASP 缓存 ASP 缓存是一种...
    99+
    2023-07-10
    缓存 javascript 分布式
  • PHP开发中如何使用Memcache实现分布式缓存?
    PHP开发中如何使用Memcache实现分布式缓存?随着Web应用程序的规模和访问量的增加,缓存的重要性也越来越凸显。使用缓存可以有效减轻数据库的负载,提高网站的响应速度,并减少不必要的服务器请求。在分布式环境中,使用Memcache来实现...
    99+
    2023-11-07
    Memcache 分布式缓存 PHP开发
  • 如何使用Redis实现分布式缓存更新
    如何使用Redis实现分布式缓存更新在分布式系统中,缓存起到了重要的作用,可以大大提升系统的性能和可扩展性。而Redis作为一种高性能的内存数据库,常用于分布式缓存的实现。本文将为您介绍如何使用Redis实现分布式缓存的更新,并给出具体的代...
    99+
    2023-11-07
    分布式 redis 缓存更新
  • 如何用Go语言和Redis实现分布式缓存
    如何用Go语言和Redis实现分布式缓存引言:随着互联网的发展和应用程序的复杂性增加,缓存已经成为了提高应用性能的重要手段之一。而分布式缓存则更加适用于大规模应用系统,能够提供高效的数据存储和访问。本文将介绍如何使用Go语言和Redis实现...
    99+
    2023-10-27
    Go语言 redis 分布式缓存
  • SpringBoot使用Redis实现分布式缓存
    目录springboot使用Redis实现分布式缓存Redis实现主从复制Redis集群的构建 springboot使用Redis实现分布式缓存 1、环境构建 ​ 1.1 ...
    99+
    2023-05-14
    Java Springboot使用Redis分布式缓存 Redis分布式缓存 Springboot分布式缓存
  • 如何在分布式缓存中存储和管理 Java 数组?
    Java 数组是一种非常常见的数据结构,但在分布式缓存中存储和管理数组需要注意一些细节。本文将介绍如何在分布式缓存中存储和管理 Java 数组。 一、分布式缓存简介 分布式缓存是指将数据分散存储在多个节点上,以减轻单个节点的负担,提高系统的...
    99+
    2023-06-14
    数组 分布式 缓存
  • 如何利用Redis和Node.js实现分布式缓存功能
    如何利用Redis和Node.js实现分布式缓存功能Redis是一个开源的内存数据库,其提供了快速可扩展的键值存储,常用于缓存、消息队列和数据存储等场景。Node.js是一个基于Chrome V8引擎的JavaScript运行时,适用于高并...
    99+
    2023-10-22
    redis nodejs 分布式缓存
  • C#中怎么使用Couchbase实现分布式缓存
    C#中怎么使用Couchbase实现分布式缓存,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、简介 目前C#业界使用得最多的 Cache 系统主要是 Memcached和...
    99+
    2023-06-17
  • 如何利用Redis和C#实现分布式缓存功能
    如何利用Redis和C#实现分布式缓存功能简介:在分布式系统中,缓存是一个重要的组件,它可以减少数据库的负载,提高系统的性能和可伸缩性。Redis是一个流行的缓存服务器,它的简单性、高效性和可扩展性使其成为了一个理想的选择。本文将介绍如何使...
    99+
    2023-10-22
    缓存 分布式 redis
  • 怎么使用SignalR和Redis实现实时分布式缓存
    要实现实时分布式缓存,可以结合使用SignalR和Redis。 首先,通过SignalR建立一个实时通信的连接,可以让不同的服务之间...
    99+
    2024-05-09
    SignalR Redis
  • PHP开发中如何使用Memcache进行分布式缓存?
    随着Web应用程序的日益复杂,性能也成为了一个关键问题。在许多应用程序中,数据库查询是最耗费时间的操作之一。为了避免频繁地从数据库中读取数据,可以使用一个缓存系统,将经常读取的数据存储在内存中,以便快速的访问。在PHP开发中,使用Memca...
    99+
    2023-11-07
    PHP Memcache 分布式缓存
  • 学习 PHP 缓存和 Spring:如何在应用程序中实现最佳实践?
    PHP和Spring是两种非常流行的开发语言和框架,它们各自都有着自己的优势和劣势。但是,无论你使用哪种语言或框架,缓存都是一个非常重要的话题。在本文中,我们将讨论如何在应用程序中实现最佳实践。 什么是缓存? 缓存是一种将一些计算结果或数...
    99+
    2023-09-06
    缓存 spring 学习笔记
  • Memcache缓存技术在PHP项目中的应用和实践
    Memcache是一种开源的、分布式的缓存技术。它通过将数据存储在内存中,极大地提高了数据的访问速度,从而提升了网站的性能和响应速度。在PHP项目中,Memcache缓存技术也被广泛应用,并且取得了很好的效果。本篇文章将深入探讨Memcac...
    99+
    2023-05-17
    Memcache 缓存技术 PHP项目
  • C#开发中如何处理分布式事务和分布式缓存
    C#开发中如何处理分布式事务和分布式缓存,需要具体代码示例摘要:在分布式系统中,事务处理和缓存管理是至关重要的两个方面。本文将介绍C#开发中如何处理分布式事务和分布式缓存,并给出具体的代码示例。引言随着软件系统的规模与复杂度增加,许多应用都...
    99+
    2023-10-22
    分布式缓存 C#开发 分布式事务处理
  • PHP 缓存技术在分布式系统中的应用研究
    随着互联网的快速发展,分布式系统的应用越来越广泛。在分布式系统中,如何快速响应用户请求成为了一个重要的问题。PHP 缓存技术可以有效地提高系统的响应速度和性能。本文将介绍 。 一、什么是 PHP 缓存技术? PHP 缓存技术是指将 PHP...
    99+
    2023-09-22
    分布式 并发 缓存
  • 分布式缓存在ASP网站中的应用,如何提升并发性能?
    随着互联网的不断发展,网站的并发访问量也越来越大,如何提升网站的并发性能成为了网站开发者必须面对的一个问题。其中,分布式缓存是提升网站并发性能的一种有效手段。本文将介绍在ASP网站中如何使用分布式缓存来提升并发性能,并给出相应的演示代码。 ...
    99+
    2023-10-21
    分布式 缓存 并发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作