加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 编程 > 正文

如何优雅的搞垮服务器

发布时间:2021-02-07 17:30:40 所属栏目:编程 来源:互联网
导读:如上图所示,如果不进行预热,那么Redis初识状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中,对数据库造成流量的压力。 如何解决 现在我们已经知道会有缓存预热这个问题,那么就要想一下对策咯。可以分析出以下两点: 需要统计访问频度

如上图所示,如果不进行预热,那么Redis初识状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中,对数据库造成流量的压力。

如何解决

现在我们已经知道会有缓存预热这个问题,那么就要想一下对策咯。可以分析出以下两点:

  • 需要统计访问频度较高的热点数据
  • 使用LRU数据删除策略,构建数据留存队列

所以我们可以设计一个如下方案:

  • 首先,通过 nginx + lua 的方式,把访问流量数据上报到 Kafka,也可以是其它的 mq 队列。
  • 然后使用实时计算框架(如 storm 、spark streaming、flume)从 kafka 中消费访问流量数据,实时计算出访问频率高的数据,这里统计出来的可能只会有编号信息,如商品编号或博客编号等。
  • 最后,根据编号从 mysql 数据库中查询出具体的信息,写入 redis,开始提供服务。

缓存更新的几种设计

1. 先删除缓存,在更新数据库

虽然这是一种错误方法,但是这种设计也是属于缓存更新的一种方法,所以大家还是要知道为什么不可以这么做。还是那句话:知其所以然嘛。

这种方法就是在更新数据库时,先删除缓存,然后在更新数据库,而后续的操作会把数据在装载到缓存中,这种逻辑在并发时就会先脏数据,看如下图:
 

前言

Hello,everybody,我是asong,今天我依然聊一聊缓存,不过今天我们聊的不是面试了,我们一起来看一看我们在系统中缓存更新的设计,因自己经验有限,所以这些缓存设计来源于网上,我只是在这里总结一下,有什么不对的欢迎指出。

缓存预热 To solve 缓存冷启动

什么是缓存预热呢?我们都知道平常在跑步前都要热身,可以预防肌肉拉伤等一系例的好处。所以缓存预热具有同样的道理,我们的新系统上线后,我们可以将相关的缓存数据直接加载到缓存系统。这样可以避免在用户请求的时候,先去查询数据库,然后再将数据缓存的问题。用户可以直接查询事先已被预热的缓存数据。其实缓存预热是为了解决缓存冷启动问题,我们新系统上线后,redis集群启动后,没有任何的缓存数据,这就是redis的冷启动
 

中文有几个特点,让AI识别更高效:

1、汉字信息密度高,更少的字数可以承载更多的信息,中文文章永远比英文短,综合来看,中文信息密度比英文高37.5%。

2、中文以汉字为单位,可以灵活排列,横竖都可以,而英文是线性文字,只能横排,竖排、错乱排列的识别效率会骤降!

3、汉字独立表意能力强。比如“他去吃早饭”,你看一个字就能多明白一个字的意思。而英文“He went to have breakfast”,你即使看到“have”这个词,你依然不明大概的意思,只有到“breakfast”你才知道原来have是吃,went to是去,整句是去吃早饭。英文表意比较依赖“短语”,甚至整句,不看完整句话,你往往不能知道句意。这就给AI识别造成了难度,因为AI跳跃识别能力较差。

文字识别,中文胜。

三、同音字词

中文发展人工智能比较大的障碍就是同音字词现象!比如,他姓zhang,到底是“张”还是“章”呢?如果是口语的话,还要补一句弓长张,或立早章。中文里有多少同音字、同音词,很难准确的统计。同音字词也是英语使用者攻击中文表意不清比较大的借口。

英语虽然也有同音字,如right正确的、write写字;meet遇见、meat 肉;hole 洞穴、whole 全部的;pear梨子、pair双;flower花、flour面粉等,但英语同音字词数量远比中文同音词数量少。英语是通过造更多单词的方法,来减少同音词现象的。

AI现在不能准确处理多音字,出错在所难免。难道为了AI准确,人类只能通过语言文字改革消灭多音字词?这工程也太大了,人类也很难适应这么大的改革!

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读