网站建设大数据wordpress创意主题
2026/1/24 14:35:49 网站建设 项目流程
网站建设大数据,wordpress创意主题,wordpress不支持pdo,上海建设工程检测登记的网站前言#xff1a;用户的数据一般都存储到数据库中#xff0c;数据库的数据是存储在磁盘上的#xff0c;当用户的请求特别多时#xff0c;数据库就很容易进行崩溃#xff0c;所以为了直接避免用户直接访问数据库#xff0c;都会用redis作为缓存层。 具体原因#xff1a; 因…前言用户的数据一般都存储到数据库中数据库的数据是存储在磁盘上的当用户的请求特别多时数据库就很容易进行崩溃所以为了直接避免用户直接访问数据库都会用redis作为缓存层。具体原因因为redis是内存数据库我们可以将数据库的缓存在redis中内存的读写速度比磁盘的读写速度快好几个数量级这样大大提高了系统性能。缓存雪崩简言而之就是大量缓存数据同时过期或者redis故障。通常我们为了保证数据库的数据与缓存的数据库一致会给Redis里的数据设置过期时间当缓存数据过期后用户访问的数据如果不在缓存里业务系统需要重新生成缓存因此就会访问数据库并将数据更新到redis这样后续请求直接命中缓存。大量缓存数据同时过期或者redis故障大量的请求会直接访问数据库从而导致数据库压力骤增严重造成数据库宕机从而造成系统崩溃。这就是缓存雪崩。1.大量数据同时过期均匀设置过期时间如果要给一个缓存数据设置过期时间应避免将大量数据设置成同一个过期时间我们可以在对缓存数据设置过期时间时给这些数据加上一个随机数。互斥锁当业务线程在处理用户请求时如果发现访问的数据不在 Redis 里就加个互斥锁保证同一时间内只有一个请求来构建缓存从数据库读取数据再将数据更新到 Redis 里当缓存构建完成后再释放锁。未能获取互斥锁的请求要么等待锁释放后重新读取缓存要么就返回空值或者默认值。实现互斥锁的时候最好设置超时时间不然第一个请求拿到了锁然后这个请求发生了某种意外而一直阻塞一直不释放锁这时其他请求也一直拿不到锁整个系统就会出现无响应的现象。后台更新缓存业务线程不再负责更新缓存缓存也不设置有效期而是让缓存“永久有效”并将更新缓存的工作交由后台线程定时更新。注意事项缓存数据不设置有效期并不是意味着数据一直能在内存里当系统内存资源紧张时有些缓存数据会被淘汰。因此有如下两种解决方式1.后台线程不仅负责定时更新缓存而且也负责频繁检测缓存是否有效。2.在业务线程发现缓存数据失效后缓存数据被淘汰通过消息队列发送一条消息通知后台线程更新缓存后台线程收到消息后在更新缓存前可以判断缓存是否存在存在就不执行更新缓存操作不存在就读取数据库数据并将数据加载到缓存。2.redis故障宕机服务熔断或请求限流机制一句话总结redis故障后暂停所有的应用对缓存服务的访问直接返回错误。构建 Redis 缓存高可靠集群一句话总结redis故障后主从复制启动副本节点。缓存穿透简言而之就是某个热点数据过期了此时大量请求访问·该热点数据就无法从缓存中读取直接俄访问数据库。可以发现缓存击穿跟缓存雪崩很相似你可以认为缓存击穿是缓存雪崩的一个子集。应对缓存击穿可以采取前面说到两种方案• 互斥锁方案保证同一时间只有一个业务线程更新缓存未能获取互斥锁的请求要么等待锁释放后重新读取缓存要么就返回空值或者默认值。• 不给热点数据设置过期时间由后台异步更新缓存或者在热点数据准备要过期前提前通知后台线程更新缓存以及重新设置过期时间缓存击穿简言而之就是大量访问数据库中不存在的数据数据库压力骤增这就是缓存穿透的问题。缓存穿透的发生一般有两种1.业务误操作缓存中的数据和数据库中的数据都被误删了所以导致缓存和数据库都没有数据。2.黑客恶意攻击故意访问大量不存在的数据。1.非法请求的限制当有大量恶意请求访问不存在的数据的时候也会发生缓存穿透因此在 API 入口处我们要判断求请求参数是否合理请求参数是否含有非法值、请求字段是否存在如果判断出是恶意请求就直接返回错误避免进一步访问缓存和数据库。2.缓存空值或默认值当我们线上业务发现缓存穿透的现象时可以针对查询的数据在缓存中设置一个空值或者默认值这样后续请求就可以从缓存中读取到空值或者默认值返回给应用而不会继续查询数据库。3.布隆过滤器我们可以在写入数据库数据时使用布隆过滤器做个标记然后在用户请求到来时业务线程确认缓存失效后可以通过查询布隆过滤器快速判断数据是否存在如果不存在就不用通过查询数据库来判断数据是否存在。即使发生了缓存穿透大量请求只会查询 Redis 和布隆过滤器而不会查询数据库保证了数据库能正常运行Redis 自身也是支持布隆过滤器的。总结缓存异常会面临三个问题缓存击穿穿透雪崩。其中击穿与雪崩是因为数据不在缓存中了压力给到数据库从而导致系统崩溃。穿透是因为大量查询数据库不存在的数据从而导致系统崩溃。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询