处理高并发原理

本文探讨了处理高并发的三种策略,重点讲解了应用层如何利用单例缓存和Redis来减少IO次数,提高并发访问处理速度。通过单例缓存确保数据一致性,并介绍Redis作为内存数据库的优势,如数据持久化,减少数据库负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高并发 High Concurrency) 即在同一时间段,有大量请求

处理高并发有三种手段:
1、提高单机服务器配置
2、增加服务器数量
3、应用层利用缓存减少IO次数,提高并发访问处理速度(推荐redis做缓存)

这里主要讲应用层如何利用缓存减少IO次数提高效率

利用单例缓存原理:
1、这里我们需要用到单例缓存(Map<String,Object>)做应用的缓存系统,将数据保存在内存中。
2、不会被修改的数据,可以在服务器启动时将数据读取到单例缓存中,再之后的操作中,只需要读取缓存中的数据,不需要再访问数据库。
3、其他数据,这里我们需要注意一点,一张表,在同一个时间,只能有一个请求去操作这张表。
这里分为两种情况:
1)首次访问为读取:
我们首次读取这条数据时,读取后,放入缓存中,下次优先读取缓存中数据。
2)首次访问为修改:
这里会有两个数据库操作,先修改后读取,对这两个操作进行synchronized加锁数据混乱。进来的请求先对数据库进行修改操作,接着读取这条数据,放入内存中,以便于下次访问

利用redis做缓存原理:
1、这里需要利用redis配合java应用做缓存处理,首先我们要知道为什么选redis,redis是数据库的一种,但是又区别于数据库,redis的数据是放在内存中的,做持久化保存。
2、不会被修改的数据,可以在服务器启动时将数据读取到缓存中,再之后的操作中,只需要读取缓存中的数据,不需要再访问数据库。
3、其他数据
这里分为两种情况:
1)首次访问为读取:
我们首次读取这条数据时,读取后,放入缓存中,下次优先读取缓存中数据。
2)首次访问为修改:
I、进来的请求 先对数据库进行读取 操作,接着 修改缓存 中的这条数据
II、定时任务,设定一个周期同步一次缓存中的数据进数据库

注: 为什么单例不使用定时同步数据的方式,这里要讲到普通的缓存和redis有什么区别,普通的缓存在服务器重启时,内容数据是会丢失的,而redis的好处就是它不会,redis还有很多好处帮助减少数据库负担,是个很好的做缓存的神器!

Author:小熊
邮箱: gshjd@foxmail.com
不足之处请指出。
转载请附上作者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值