首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >志玲姐姐宣布结婚的一刹那,对一个单身程序员的冲击究竟有多大。

志玲姐姐宣布结婚的一刹那,对一个单身程序员的冲击究竟有多大。

作者头像
王炸
发布2019-07-02 11:13:04
9440
发布2019-07-02 11:13:04
举报
文章被收录于专栏:转行程序员转行程序员

“天下武功,无坚不摧,唯快不破”

2019年6月6日 下午6:06分 全民女神林志玲宣布结婚,这是一条爆炸新闻,究竟有多炸??,一会儿我再给你分析,看到这条消息的这一刻,我的心里也一阵悲叹,为什么在全民下班准备回家过端午的时候发布这条消息,这真的很6666。

微信里所有的群都在讨论“这位大哥你是谁?” 你究竟哪来的神仙?你很6吗?

做为一个程序员,我不关心这位大哥你有多6,我担心的是9,什么是9,是新浪服务器请求成功率还剩几个9,是99.9999,还是已经挺不住了?

为什么会担心这个呢?现在从技术角度来分析一下志玲姐姐宣布结婚的消息,对一个系统有什么挑战。

关于热点数据的危害与解决方案

什么是热点数据?

如淘宝双11,京东618,电商促销秒杀活动,微博爆炸性新闻等,一个话题或一件商品,在短时间内被大量读写,这些数据都有可能成为热点数据,一般解决热点数据,而这些热点数据往往存储在分布式缓存里,如Redis,

由于商品物美价廉,志玲姐姐太过漂亮,用户收到消息后会进入活动页面疯狂点击,请求量巨大,最终导致页面异常,服务器报警。报警信息显示很多关于Redis缓存的异常,一旦redis请求被打满请求无法相应后,系统自动降级转而向数据库去查询数据,这样数据库更加难以支撑,整个业务集群处于雪崩状态。

热点数据产生点危害

  • 流量集中,如爆炸性新闻,请求流量达到物理网卡上限。
  • 请求过多,缓存分片服务被打垮。
  • DB 击穿,引起业务雪崩,最后造成整个系统的雪崩。

Redis使用最佳实践

  1. 选择合适的数据结构: Redis原生支持String、Hash、Set、SortedSet、List等数据结构以支持复杂的场景需求 。
  2. 杜绝大Key,热点Key: 1.比如String类型的value超过512KB,Hash、Set、Zset、List这些集合类型的元素超过1W个,推荐阅读我其它文章:Redis大key多key拆分方案

2.热点key容易造成CPU、网络上的高负载。建议业务对热点key有降级方案

  1. 单集群Key个数 < 1亿: Key个数过多会消耗大量的额外内存
  2. 主动更新缓存: 被动更新可能会给DB带来压力。推荐可以通过订阅数据库的变更或者其他方式来更新缓存中的key
  3. 关注集群内存: 内存在满载情况会对业务有明显的性能影响。建议在集群内存占用较高的时候一是尝试优化),二是联系DBA进行扩容操作。
  4. 设置合理的过期时间: 1,key的过期时间应该尽量的短,减少内存占用; 2,避免出现大量key同时过期的
  5. 使用multiGet或者pipeline提速: 使用multiGet或者 pipeline能够将多次的缓存操作合并到一次网络请求中,大大减少网络开销。
  6. 避免复杂操作: 1.multi以及pipeline等批量操作中的key个数不要太多,避免使用复杂度为O(N)的集合类操作,比如Hgetall。

2.multi,pipeline,hgetall 如何选择? 如果本身key 不超过 100 , 建议存放在 hash中, hash批量获取可以减少网络IO (只获取一个key 和 获取多个key 的区别)

  1. 不要过度使用: 比如不要使用list去做消息队列,Redis不保证这些功能的可靠性。有这类需求的可以去使用架构的其他组件,专业的事由专业的组件做

推荐容灾方案

大部分场景下,推荐业务使用双机房部署方案,一个机房部署主节点,一个机房部署从节点,可以满足绝大多数的场景需求。极端场景下可能主节点所在机房掉电,那么集群处于不可用状态(此时可以通过人工介入来恢复集群的可用状态)。

对可用性要求高的业务我们推荐三机房部署方案,即便在一个机房掉电的场景下也能保证集群的高可用。

最后,我呼吁天下所有单身||离婚的程序员,不要再惦记志玲了,关注我跟我学技术,或许下一个女神就是你的。

我不是言承旭

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 转行程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推荐容灾方案
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档