wordpress网站定制怎么做才能设计出好的网站

bicheng/2026/1/24 9:29:20/文章来源:
wordpress网站定制,怎么做才能设计出好的网站,拍摄宣传片的流程简要,新闻类网站怎么做缓存 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于高速存储媒介上。 缓存的本质就是用空间换时间#xff0c;牺牲数据的实时性#xff0c;以服务器内存中的数据暂时代替从数据库读取最新的数据#xff0c;减少数据库IO#…缓存 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于高速存储媒介上。 缓存的本质就是用空间换时间牺牲数据的实时性以服务器内存中的数据暂时代替从数据库读取最新的数据减少数据库IO减轻服务器压力减少网络延迟加快页面打开速度。 缓存的优点及作用 降低后端负载提高读写效率降低响应时间。 缓存分类 浏览器缓存 主要是存在于浏览器端的缓存 应用层缓存 使用在代码层面的Map、List、Set等进行存储实现对数据、页面、图片等资源的缓存 数据库缓存 早期的数据库如Oracle、MySQL、SQL server等数据都是存放在磁盘。虽然数据库层也有对应的缓存(例如MySQL增改查数据都会先加载到数据库中的一片空间 buffer pool)但这种缓存一般针对的是查询内容而且粒度太小一般只有表中数据没有变更的时候数据库对应的缓存才发挥作用。但这并不能减少业务系统对数据库产生的增、删、查、改的庞大IO压力。 redis、mamcached、mongodb是比较常见的缓存数据库把经常需要从数据库查询的数据、或经常更新的数据放入到缓存中这样下次查询时直接从缓存直接返回减轻数据库压力。但这些缓存数据库大多在系统关机后数据就会丢失所以大量的数据仍需存在早期的数据库中。 CPU缓存 当代计算机最大的问题是 cpu性能提升了但内存读写速度没有跟上所以为了适应当下的情况增加了cpu的L1L2L3级的缓存介于CPU和内存之间。 服务器缓存 包括代理服务器缓存和CDN缓存 代理服务器缓存代理服务器是浏览器和源服务器之间的中间服务器浏览器先向这个中间服务器发起Web请求经过处理后(比如权限验证缓存匹配等)再将请求转发到源服务器。 代理服务器缓存的运作原理跟浏览器的运作原理差不多只是规模更大。可以把它理解为一个共享缓存不只为一个用户服务一般为大量用户提供服务因此在减少响应时间和带宽使用方面很有效同一个副本会被重用多次。 CDN缓存也叫网关缓存、反向代理缓存。CDN缓存一般是由网站管理员自己部署为了让他们的网站更容易扩展并获得更好的性能。 浏览器先向CDN网关发起Web请求网关服务器后面对应着一台或多台负载均衡源服务器会根据它们的负载请求动态将请求转发到合适的源服务器上。 虽然这种架构负载均衡源服务器之间的缓存没法共享但却拥有更好的处扩展性。从浏览器角度来看整个CDN就是一个源服务器。 缓存思路 基于Redis的缓存 标准的操作方式就是查询数据库之前先查询缓存如果缓存数据存在则直接从缓存中返回如果缓存数据不存在再查询数据库然后将数据存入redis。 更新策略 缓存更新是redis为了节约内存而设计出来的一个东西主要是因为内存数据宝贵当我们向redis插入太多数据此时就可能会导致缓存中的数据过多所以需要淘汰掉部分过期的数据。 另外缓存的数据源来自于数据库,而数据库的数据是会发生变化的,因此,如果当数据库中数据发生变化,而缓存却没有同步,此时就会有一致性问题存在。 策略选择 低一致性要求——内存淘汰或过期淘汰 高一致性要求——主动更新为主、过期淘汰兜底 内存淘汰 redis自动进行当redis内存达到咱们设定的max-memery的时候会自动触发淘汰机制淘汰掉一些不重要的数据(可以自己设置策略方式) 超时剔除 当我们给redis设置了过期时间ttl之后redis会将超时的数据进行删除方便咱们继续使用缓存 主动更新 我们可以手动调用方法把缓存删掉通常用于解决缓存和数据库不一致问题 Cache Aside Pattern 人工编码方式缓存调用者在更新完数据库后再去更新缓存也称之为双写方案。 Read/Write Through Pattern : 由系统本身完成数据库与缓存的问题交由系统本身去处理。 Write Behind Caching Pattern 调用者只操作缓存其他线程去异步处理数据库实现最终一致。 Cache Aside 缓存调用者在更新数据库的同时完成对缓存的更新 一致性良好、实现难度一般 删除/更新缓存 更新缓存每次更新数据库都更新缓存会产生无效更新并且存在较大的线程安全问题。 如果是先更新数据库再更新缓存。理论上这种方式比先更新数据库再删缓存有着更高的读性能因为它事先准备好数据。但由于要更新数据库和缓存两块数据所以它的写性能就比较低而且关键在于它也会出现脏数据如下图两个并发更新操作分别出现一前一后写数据库、一后一前写缓存则最终缓存的数据是二者中前一次写入的数据不是最新的。 如果是先更新缓存再更新数据库。这种方案见Write Back策略。 删除缓存更新数据库时让缓存失效查询时再更新缓存。本质是延迟更新没有无效更新线程安全问题相对较低。 先操作数据库/先删除缓存 先操作数据库再删除缓存在满足事务原子性的情况下安全问题概率较低. 写操作先更新数据库更新成功后使缓存失效。读操作先读缓存缓存中读到了则直接返回缓存中读不到再读数据库之后再将数据库数据加载到缓存中。不过这同样存在问题查询操作未命中缓存接着读数据库老数据之后、写缓存之前此时另一个用户发起了更新操作更新了数据库并清了缓存接着查询操作将数据库中老数据更新到缓存。这就导致缓存中数据变成脏数据并且会一直脏下去直到缓存过期或发起新的更新操作。不过这个情况出现的情况比较低其需要具备以下情况 读操作读缓存失效有个并发的写操作写操作比读操作更快读操作早于写操作进入数据库晚于写操作更新缓存 实际上数据库的写操作会比读操作慢得多而且还要锁表而读操作必需在写操作前进入数据库操作而又要晚于写操作更新缓存所有的这些条件都具备的概率基本并不大。并且即使出现这个问题还有一个缓存过期时间来自动兜底。 先删除缓存再操作数据库安全问题概率较低。 假设有两个并发操作一个操作更新、另一个操作查询更新操作删除缓存后还没来得及更新数据库此时另一个用户发起了查询操作它因没有命中缓存进而从数据库读此时第一个操作还没到更新数据库的阶段读取到的是老数据接着写到缓存中导致缓存中数据变成脏数据并且会一直脏下去直到缓存过期或发起新的更新操作。 如何保证数据库与缓存操作原子性 单体系统利用事务机制 (比如方法体上添加注解 Transactional) 分布式系统利用分布式事务机制 Read/With Through 缓存与数据库集成为一个服务服务保证两者的一致性对外暴露API接口调用者调用API无需知道操作的是缓存还是数据库不关心一致性 一致性良好、实现复杂、性能一般 Write Back 缓存调用者的CRUD都针对缓存完成由独立的异步线程将缓存数据写入数据库实现最终一致。 一致性差、性能良好、实现复杂 缓存穿透 缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在这样缓存永远不会生效这些请求都会打到数据库。 常见的解决方案有两种 缓存空对象 优点实现简单维护方便缺点 额外的内存消耗可能造成短期的不一致 布隆过滤 优点内存占用较少没有多余key缺点 实现复杂存在误判可能 缓存空对象 当我们客户端访问不存在的数据时先请求redis但是此时redis中没有数据此时会访问到数据库但是数据库中也没有数据这个数据穿透了缓存直击数据库我们都知道数据库能够承载的并发不如redis这么高如果大量的请求同时过来访问这种不存在的数据这些请求就都会访问到数据库简单的解决方案就是哪怕这个数据在数据库中也不存在我们也把这个数据存入到redis中去这样下次用户过来访问这个不存在的数据那么在redis中也能找到这个数据就不会进入到缓存了 布隆过滤 布隆过滤器其实采用的是哈希思想来解决这个问题通过一个庞大的二进制数组走哈希思想去判断当前这个要查询的这个数据是否存在如果布隆过滤器判断存在则放行这个请求会去访问redis哪怕此时redis中的数据过期了但是数据库中一定存在这个数据在数据库中查询出来这个数据后再将其放入到redis中假设布隆过滤器判断这个数据不存在则直接返回。 这种方式优点在于节约内存空间存在误判误判原因在于布隆过滤器走的是哈希思想只要哈希思想就可能存在哈希冲突。 缓存雪崩 缓存雪崩是指在同一时段大量的缓存失效或者Redis等缓存服务宕机导致大量请求到达数据库带来巨大压力。 解决方案 给不同的Key的TTL添加随机值避免了因为采用相同的过期时间导致的缓存雪崩利用Redis集群提高服务的可用性可以使用主从架构的集群提高服务的可用性万一出现宕机可以使用从节点顶上避免因为一台Redis缓存服务宕机影响整个业务提高Redis的容灾性给缓存业务添加降级限流策略当redis发生故障的时候可以直接拒绝服务而不是继续访问数据库给业务添加多级缓存在浏览器、nginx、redis、jvm、数据库等一层层的添加缓存使用熔断机制。当流量到达一定的阈值时就直接返回“系统拥挤”之类的提示防止过多的请求打在数据库上。至少能保证一部分用户是可以正常使用其他用户多刷新几次也能得到结果。 缓存击穿 缓存击穿问题也叫热点Key问题就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了无数的请求访问会在瞬间给数据库带来巨大的冲击。 常见的解决方案有两种 互斥锁逻辑过期 互斥锁 如果发生缓存击穿后第一个请求查询数据库中该数据的时候使用一个锁锁住后续的所有请求在锁未放开之前访问这个数据就让它休眠一会重新查询缓存。缺点就是在第一个线程写缓存期间其他访问该数据的线程拿不到锁就只能处于等待状态影响查询的性能因为此时会让查询的性能从并行变成了串行我们可以采用tryLock方法 double check来解决这样的问题。 优点没有额外的内存消耗保证了缓存数据库的一致性实现比较简单 缺点线程需要等待性能受影响可能有死锁风险。 逻辑过期 我们把过期时间设置在 redis的value中注意这个过期时间并不会直接作用于redis而是我们后续通过逻辑去处理。 假设线程1去查询缓存然后从value中判断出来当前的数据已经过期了此时线程1去获得互斥锁那么其他线程会进行阻塞获得了锁的线程他会开启一个新开的线程2去进行 以前的重构数据的逻辑直到新开的线程完成这个逻辑后才释放锁 而线程1直接进行返回假设现在线程3过来访问由于线程线程2持有着锁所以线程3无法获得锁线程3也直接返回过期的数据只有等到新开的线程2把重建数据构建完后其他线程才能返回更新的数据。 优点线程无需等待 缺点不能保证缓存数据库一致性有额外的内存消耗实现比较复杂。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

锦州建设信息网站徐州建设企业网站

SQL Injection 就是通过把恶意的sql命令插入web表单递交给服务器,或者输入域名或页面请求的查询字符串递交到服务器,达到欺骗服务器,让服务器执行这些恶意的sql命令,从而让攻击者,可以绕过一些机制,达到直…

企业门户网站建设渠道网站积分商城该怎么建立

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 1.工厂方法模式:(常用,需要掌握) 定义:定义了一个创建对象的抽象方法,由子类决定要实例化的类。…

被墙域名黑别人网站vue做门户网站用什么ui

一、Spring Boot简介与背景 在当前的Java应用程序开发领域,Spring Boot 已经成为了一种非常受欢迎的选择。Spring Boot是Spring Framework的一种扩展,旨在简化基于Spring的应用程序的开发和部署过程。它的出现填补了许多传统Spring开发中的空白&#xf…

国内p2p网站建设周末做兼职上什么网站找

U盘是我们生活和工作中最常用的移动储存设备,经常被用来存放各种重要数据,为了保证数据的安全,我们需要加密U盘。那么,U盘加密方法有哪些呢? U盘加密普通方法 如果你的U盘储存数据不多,并且对于加密的要求…

建设银行网站每天几点更新重庆怎么站seo

什么是动态规划 对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了! 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组&a…

陵水网站建设价格富阳网站设计

文章目录 Linux学习笔记操作系统Linux初识Linux的诞生Linux内核Linux发行版 虚拟机VMware安装远程连接Linux系统FinalShellFinalShell连接Linux WSL配置UbuntuLinux常用命令1.入门2.ls命令cd命令3.pwd命令4.相对路径和绝对路径5.mkdir命令6.文件操作命令(1&#xff…

个人免费网站建设wordpress 数码主题

进程管理 基本概念进程控制进程上下文切换 线程进程和线程的比较进程通信管道消息队列共享内存信号量信号socket 基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元.并行和并发:状态: 其中挂起是指没有给程序分配实际…

黄埔移动网站建设网站设网站设计

本文重点 梯度下降算法和正规方程是两种常用的机器学习算法,用于求解线性回归问题。它们各自有一些优点和缺点,下面将分别对它们进行详细的讨论。 区别 1. 梯度下降算法是一种迭代的优化算法,通过不断迭代调整参数来逼近最优解。它的基本思想是根据目标函数的梯度方向,沿…

学习网站后台维护网站开发过程阶段

作者推荐 视频算法专题 本文涉及知识点 数学 回溯 字符串 性能优化 LeetCode1307. 口算难题 给你一个方程,左边用 words 表示,右边用 result 表示。 你需要根据以下规则检查方程是否可解: 每个字符都会被解码成一位数字(0 - …

郑州优化网站收费标准wordpress 超酷主题

点此进入官网,专家1对1:应用身份管理服务OneAccess_华为云IDaaS-华为云

网站横幅代码网站制作属于什么专业

文章目录 力扣题目工程代码C实现python实现 力扣题目 给你一个长度为 n 下标从 0 开始的字符串 blocks ,blocks[i] 要么是 ‘W’ 要么是 ‘B’ ,表示第 i 块的颜色。字符 ‘W’ 和 ‘B’ 分别表示白色和黑色。 给你一个整数 k ,表示想要 连…

靖江建设行业协会网站淘客优惠券推广网站怎么做

实时时钟RTC是一个独立的定时器。RTC模块拥有一个连续计数的计数器,在软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 在掉电情况下 RTC仍可以独立运行 只要芯片的备用电源…

网站的后台怎么做app营销策略有哪些

横、纵表 定义 横表定义:一个对象的所有属性在一行,列的定义是对象的各个字段 举例:学生成绩表 姓名 Java C语言 ​ 张三 100 88 纵表定义:一个对象的所有属性被分配到多行,列的定义是对象的字段和字段的值 举例…

视频广告联盟平台排名优化工具下载

一、事件与处理 程序在运算过程中发生的一些事情:鼠标单击、键盘的按下... 这些的事件的监控与处理在Qt中不是以信号的方式处理的。 当这些事件发生时会调用QObject类中的功能函数(虚函数),所有的控件类都继承了这个类。 常用的鼠…

铜川做网站的公司上海装修公司排名前20

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 网康下一代防火墙(NGFW)是一款可以全面应对应用层威胁的高性能防火墙。通过深入洞察网络流量中的用户、应用和内容,并…

淘宝网客网站建设网站开发和软件开发

今天学习Makefile预定义变量的使用,加qq:1126137994.微信:liu1126137994一起学习更多技术!!! 1.预定义变量:自动变量 在Makefile中存在一些预定义过的变量,我们可以直接拿来使用而…

平面网站设计网站备案域名更改

手搓反激电源 | 五、反激高频变压器的设计与计算 先上干货,变压器设计规格书 千里之行,积于跬步,万里之船,成于罗盘 A journey of thousands of miles accumulates in steps, and the ship of thousands of miles becomes a compass 反激式变换操作 反激式变换器的…

酷炫网站首页WordPress里h1跟p有什么

大家有没有想过这个问题:软件测试中有哪些误区呢?想起这个题目,是因为最近遇到好几次关于这方面的讨论。发觉即便做过几年测试的老员工也或多或少有些这方面的困惑。当然一家之言,仅作抛砖引玉之谈。 误区一:测试就是…

学做网站论坛 可以吗个人网站开发赚钱方向

​2023年12月13日,北京玻色量子科技有限公司(以下简称“玻色量子”)联合上海交通大学在中科院分区1区、计算化学领域Top刊物JCTC(Journal of Chemical Theory and Computation)内刊的封面上发表了以“Encoding Molecul…

妇联加强网站平台建设高端网站改版顾问

目录 一、面向过程和面向对象初步认识 二、类的引入和定义 2.1类的引入 2.2类的定义 三、类的访问限定符及封装 3.1访问限定符 3.2封装 四、类的作用域 五、类的实例化 六、类的对象大小的计算 6.1如何计算对象的大小 6.2类对象的存储方式 七、类成员函数的thi…