![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
高并发解决方案汇总
生产实力
cloud-笔记
这个作者很懒,什么都没留下…
展开
-
-笔记 tps qps
并发处理原创 2023-05-07 15:29:07 · 560 阅读 · 1 评论 -
Mysql数据库的优化方案
Mysql数据库的优化1.引擎的优化2.索引的优化3.分库分表4.读写分离5.使用缓存MySQL性能优化从以下三个问题考虑:1. 单条 SQL 运行慢3. 部分 SQL 运行慢4. 整个 SQL 运行慢问题 1:单条 SQL 运行慢问题分析造成单条 SQL 运行比较慢的常见原因有以下两个:1. 未正常创建或使用索引2. 表中数据量太大解决方案 1:创建并正确使用索引索引是一种能帮助 MySQL 提高查询效率的主要手段,因此一般情况下我们遇到的单条 SQL 性能问题,通常原创 2022-04-11 22:01:35 · 470 阅读 · 0 评论 -
什么是死锁怎么避免?
一,什么是死锁?两个或者多个互相竞争共享资源的线程,因为互相等待,导致‘永久’阻塞的现象二,产生死锁的原因?同时满足4个条件互斥条件:共享资源x和y只能被一个线程占用,且等待。线程1已经取得共享资源x,在占用共享资源y的时候,不释放共享资源x不可抢占,其他线程不能抢占线程1占有的共享资源x循环等待:线程1 等待线程2占有的共享资源,线程2等待线程1的三,怎么避免死锁?打破其中任何一个条件1.线程互斥没法解决,本身就是解决线程安全的2. 占用且等待,可以申请一次性获取资源,这样就不用等原创 2022-04-11 10:03:11 · 562 阅读 · 0 评论 -
redis和mysql如何保持数据一致性
redis和mysql如何保持数据一致性一般情况下,redis是实现 应用和数据库之间的一个读操作的缓存层。 目的就是减少数据库的IO,提高数据库的IO性能数据->写入缓存,读取数据,首先尝试,命中缓存就从缓存中读取数据,没有命中就去数据库中读取查到后再把数据写到缓存。出现的问题,一份数据同时保存在redis和数据库中,当数据发声变化时,需要更新 redis和数据库,因为更新操作是有先后顺序的,不像mysql中的多表事务操作,可以满足ACID的特性此时就会出现数据一致性的问题。解决方法:.原创 2022-04-10 22:09:57 · 1755 阅读 · 0 评论 -
redis常规操作
高并发的瓶颈就是数据库 笔记记录下面是redis 的client 端操作,一般还可以和上篇map+lock 联合使用。都是帮助数据库减压的好手段.//redis.govar redisClient *redis.Clientfunc redisInit() { if redisClient == nil { redisClient = redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379", Passw.原创 2021-12-28 14:16:17 · 847 阅读 · 0 评论 -
用map+lock实现redis缓存
map + lock 实现 Redis缓存·高并发的瓶颈就是数据库· 写这些只为笔记,不想被动收录项目生产中 Redis 是最常用的,主要用与存放客户经常会访问的一些数据到内存里,从而减轻数据库的压力。根据需要获取你的系统不需要redis来增大开销,使用map+locak实现redis的主要功能是最好的选择.//cache.govar Cache *CacheMap//初始化func CacheInit() { if Cache == nil { Cache = NewCacheMa原创 2021-12-28 11:55:24 · 696 阅读 · 0 评论