推广

(13)<架构解决方案>缓存

iseeyu3年前 (2024-02-22)推广148

二、堆外内存off-heap

避免热点数据,占用系统内存

1、优点:1)减少gc次数  降低暂停时间    2)扩展和使用更多内存    3)省去物理内存和heap间复制

2、淘宝jdk实现:生命周期长对象从heap内移外,gc不能管理。ps:逃逸分析技术成熟,也可在栈上分配

3、如何使用物理内存:可限制容量,超出oom

4、何时释放

DirectByteBuffer对象被gc时,堆外内存一起释放

三、redis

本地缓存无法水瓶扩容,cluster容量可无限延伸

1、基于jedis客户端操作:

2、cluster的sharding

1)hash算法:扩容,历史数据要全部迁移

2)一致性hash算法:无需全部迁移,但node少时,会数据倾斜,在节点ip/主机名后增加编号,让其均匀分布

3)分槽:介于两者之间,slot固定,永远被路由到同一个

3、基于jedisCluster的读写操作

可指定单个节点

4、基于lettuce客户端的读写分离

jedis不支持集群的读写分离,lettuce可同步/异步,底层基于nio模型的netty

优点:水平扩容,无限延伸,不用手动调整连接吃maxTotal,避免本地缓存穿透

四、多级缓存

本地:共享一个进程内的heap,存热点数据

cdn:存商品图片、视频

1.不一致问题

因时差造成,允许脏读,扣库存时显示售完

2.本地缓存更新策略(主/被动)

1)被动更新:过期则回源,保证单线程,避免失效大量请求,穿透引起雪崩

guava

2)主动更新:修改后,异步写到队列,更新缓存

3、缓存穿透思考

大促前从运营那熟悉热点key,放在配置中心内

五、扣库存问题

1、行锁 

表中version,流量高峰引起大量线程竞争行锁,影响db tps,rt上升,引起雪崩

2、redis乐观锁

(1)基本命令

    1)watch:监视key(可多个),事务发生前key改变,事务则失败

    2)multi:将事务内多条命令,按先后顺序放进队列

    3)exec:最后原子性提交执行

(2)watch内部实现原理

客户端如何感知:每个db都是redis.h/redis.db结构表示,起内部存了watch_keys(被监视的目标key)

multi.c/touchWatchKey函数对watch_keys字典检查,有修改的key标记为redis_dirty_cas,后续提交事务发生中断

(3)jedis乐观锁

(4)缺省路由实现

缺点:并发越高,watch碰撞概率越大,解决:读写合成一条命令,嵌入式lua脚本

3、redis+lua (性能最好)

redis2.6之后,内置lua解释器,但eval / evalsha命令执行时,redis把它当成单条在执行

(1)lua脚本

(2)eval / evalsha 嵌入redis执行

    1)eval:重复向redis传相同lua脚本,网络开销大

    2)evalsha:从redis获取已缓存好的脚本,节省。但用evalsha前,先用script load命令加载lua到缓存中,等redis会等sha1校验码,后续用时,传校验码即可

用evalsha执行lua脚本

4、库存变化后如何同步给db

synchronized:竞争激烈用更好

cas:https://www.jianshu.com/p/6d1f3b2a3ac0    会因无限重试,占用过多cpu

5、AliSQL

对热点数据做hash,收集所有库存一次性提交(设置阈值)

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56275.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片