• 死磕 Redis,我有这么几招

    如果你是一位后端工程师,面试时八成会被问到 Redis,特别是那些大型互联网公司,不仅要求面试者能简单使用 Redis,还要深入理解其底层实现原理,具备解决常见问题的能力。可以说,熟练使用 Redis 就是后端工程师的必备技能。 但我发现,在工作或面试时,大家还是会有这样那样的疑问,比如:如何用 Redis 实现分布式锁?Redis 怎样处理过期键?缓存雪崩、穿透、热点问题怎么解决?持久化、集群方案怎么选择?如何优雅地给 Redis 做键值分析?等等。 这里,分享给你一张 Redis 问题画像图,帮你快速查...
  • 1.5年,千呼万唤

    2018 年做完 MySQL 这个爆款专栏之后,就有用户反馈让我们赶紧上线 Redis,急着要。但是打磨一个专栏到上线,和炒一盘回锅肉不一样,一般情况下我们要三到五个月的时间,Redis 是个特例,这个课程从确定主题到找出品人、试写磨合等等,一共花费了一年半的时间,过程太曲折了。做一门好课,真不容易。Redis 和 MySQL 一样,MySQL 差不多是关系数据库的标准,应用最为广泛。Redis 则是 NoSQL 和 缓存领域的王者,只要你是后端工程师,基本上没有用不到的地方,面试时八成也会被问到 Redi...
  • 如何让你的Nginx 提升10倍性能?

    一个网站到底多快才行?页面加载每花1秒钟,就有大约4%的用户走掉。排名最靠前的电商站点的首次交互时间为1至3秒,这个区间的转换率最高。显而易见,Web应用性能的重要性与日俱增。提升性能其实不难,难的是怎么看到结果。本文给出能够提升大约10倍网站性能的10个建议供大家参考。这些建议可能需要NGINX的一点支持,除了性能,这些建议也会涉及提升安全性。01使用反向代理服务器让应用更快更安全如果你的Web应用只跑在一台机器上,那要提升其性能非常简单:换一台更快的,多配几个处理器,多加几条内存,磁盘阵列也要高速的。换...
  • 又准又快!原来缓存技术是这么回事儿

    作者:程序员大白啊来源:后端技术指南针1.无处不在的缓存缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache,在Linux中有TLB加速虚拟地址和物理地址的转换,在浏览器有本地缓存、手机有本地缓存等。可见,缓存在计算机系统中有非常重要的地位,其主要作用是提高响应速度、减少磁盘访问等,本文主要讨论在高并发系统中的缓存系统。一句话概括缓存系统在高并发系统中的地位的话:如果高并发系统是烤羊肉串,那么缓存系统就是那一撮孜然。2.高并发系统中的缓存2.1 缓存系统的作用缓存系统在高并发系统的作用很大,在某...
  • 面试官:我想用Nginx提升系统10倍性能,你有哪些建议?

    点击上方蓝色“小哈学Java”,选择“设为星标”回复“资源”获取独家整理的学习资料!译者:为之漫笔来源:www.zcfy.cc/article/10-tips-for-10x-application-performance-nginx-22.html原文:https://www.nginx.com/blog/10-tips-for-10x-application-performance/提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线...
  • Spring为什么用“三级缓存”去解决循环依赖?

    点击上方蓝色字体,选择“设为星标”回复”666“获取面试宝典面试官:简历上写了精通Spring,那你回答一下Spring为什么用“三级缓存”去解决循环依赖?我:.......应该有三个缓存的map结构面试官:具体回答一下我:平时没认真深入过面试官:公司的门在那里,自己走还是我送你?很多开发者在开发 Spring 程序的时候,被动接受了已经做好的 Spring 特性案例。虽然这样减少了开发成本,但是也限制了自身的横向扩展能力。只知道如何使用,却不知道做了什么,那么注定只可能是一个码农。因为Spring 框架几...
  • 干货 | 数据库压力降低90%,携程机票订单缓存系统实践

    作者简介 Chaplin,携程资深PMO,平时喜欢解决系统相关的问题,包括但不限于分布式/大数据量/性能/体验等,不畏复杂但更喜欢简单。本文旨在分享携程机票后服务订单处理团队,在构建机票订单缓存系统过程中的一些思考总结,希望能给大家一些启发或帮助。通篇分为以下七大部分:背景,瓶颈,选型,架构,方案,优化,总结,文章概要如下图:一、背景近些年随着携程机票业务的不断发展,用户量和订单量也稳定地增长,再加上用户访问入口的多样性、机票的有效期特别长等特征,导致查询流量不断增长。这些,给基于强依赖订单数据库的订单查询...
  • Java开源框架中的设计模式

    前言设计模式是软件设计中常见问题的典型解决方案,你可以通过对其进行定制来解决代码中的特定设计问题。设计模式与方法或库的使用方式不同, 你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。本文咱们将从设计模式入手,看一看在优秀的Java框架/中间件产品中,设计模式是怎么被应用的。吃没吃过猪肉不重要,总得先看看猪猪是咋跑的。一、单例模式单例模式是 Java 中最简单的设计模式之一,它提供了一种创建对象的最佳方式。...
  • 图解Spring循环依赖,看过之后再也不怕面试被问到了!

    点击上方“匠心零度”,选择“设为星标”做积极的人,而不是积极废人来源 | https://juejin.im/post/5e927e27f265da47c8012ed9Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题。其实笔者本人对这类框架源码题还是持一定的怀疑态度的。如果笔者作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景题。那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么。正文通常来说...
  • 房产RN页面启动速度优化

    导语自58引入React-Native技术栈后,RN在房产业务线被广泛使用,业务覆盖租房、二手房、商业地产各线需求共30余个。随着房产对app体验要求的不断提高,RN页面体验优化亟待处理。RN页面因其特有的处理逻辑,相对其他原生页面在页面启动耗时方面差距尤为明显,所以启动速度优化是RN页面体验优化的第一步。加载流程分析首先看下58RN架构图:以上过程可概括为以下几个阶段:1)初始化RN环境2)加载框架JS3)下载业务JS4)运行业务JS5)渲染页面下文会按照以上流程探讨启动过程中耗时问题产生原因以及解决方案...
  • 图解 Spring 循环依赖,写得太好了!

    转自:Vt链接:juejin.im/post/5e927e27f265da47c8012ed9前言Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题。其实笔者本人对这类框架源码题还是持一定的怀疑态度的。如果笔者作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景题。那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么。正文通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中...
  • 唉,面试官这 5 道题,难为我这 3 年经验了

    最近一个哥们去面试某当红大厂了,其中几个他印象深刻的面试题你们品品:1、介绍下如何对MySQL SQL语句进行分析和优化?2、Redis 怎样实现的分布式锁?3、如何实现本地缓存和分布式缓存?4、说一下 JVM 的内存布局和运行原理?5、RocketMQ 是怎么存储消息的?源码中有哪些高可用、高性能的设计?面试官不愧是大佬,一层接一层的问过来,问完“Redis 怎样实现的分布式锁”又问“单机锁有哪些?它为什么不能在分布式环境下使用?”由于平时只是改改以前的框架代码,哥们当场懵逼!面完瞬间觉得自己的技术弱爆了...
  • 如何将 Nginx 性能提升10倍?这10个“套路”请收好!

    提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了。在这个超级链接、随时在线的现代世界,用户的期望也远非昔日可比。如果你的网站不能马上响应,你的应用不能立即运行,用户转身就会投奔你的竞争对手。亚马逊大约10年前的一项研究表明,页面加载时间减少1/10秒,能够使其营收增长1%。另一项近期的调查也显示,一多半受访站点所有者提到因为自己应用的性能不佳导致了收入减少或者用户流失。一个网站到底多快才行?页面加载每花1秒钟,就有大约4%的用户...
  • 唉,面试官这 5 道题,难为我这 3 年经验了

    最近一个哥们去面试某当红大厂了,其中几个他印象深刻的面试题你们品品:1、介绍下如何对MySQL SQL语句进行分析和优化?2、Redis 怎样实现的分布式锁?3、如何实现本地缓存和分布式缓存?4、说一下 JVM 的内存布局和运行原理?5、RocketMQ 是怎么存储消息的?源码中有哪些高可用、高性能的设计?面试官不愧是大佬,一层接一层的问过来,问完“Redis 怎样实现的分布式锁”又问“单机锁有哪些?它为什么不能在分布式环境下使用?”由于平时只是改改以前的框架代码,哥们当场懵逼!面完瞬间觉得自己的技术弱爆了...
  • Vue项目部署的最佳实践

    (给前端速报加星标,提升前端技能)作者:沉末_juejin.im/post/5eb2243e51882555d8457833前言使用vue、react、angular等技术开发过程中,我们都会遇到以下问题:首屏加载慢每一次更新都需要清除浏览器缓存才能看到效果(经常被测试吐槽)这两个问题可以从很多方面进行优化,今天我就从前端页面部署阶段来优化一下这两个问题。PS:以下内容都基于vue-cli3+。前端页面文件缓存方案从vue-cli3打包说起路由使用按需加载后,打包生成的文件,每一个路由页面都对应一个js和c...
  • 本地缓存性能之王Caffeine

    Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨java金融 来源丨java金融前言随着互联网的高速发展,市面上也出现了越来越多的网站和app。我们判断一个软件是否好用,用户体验就是一个重要的衡量标准。比如说我们经常用的微信,打开一个页面要十几秒,发个语音要几分钟对方才能收到。相信这样的软件大家肯定是都不愿意用的。软件要做到用户体验好,响应速度快,缓存就是必不可少的一个神器。缓存又分进程内缓存和分布式缓存两种:分布式...
  • 唉,面试官这 5 道题,难为我这 3 年经验了

    最近一个哥们去面试某当红大厂了,其中几个他印象深刻的面试题你们品品:1、介绍下如何对MySQL SQL语句进行分析和优化?2、Redis 怎样实现的分布式锁?3、如何实现本地缓存和分布式缓存?4、说一下 JVM 的内存布局和运行原理?5、RocketMQ 是怎么存储消息的?源码中有哪些高可用、高性能的设计?面试官不愧是大佬,一层接一层的问过来,问完“Redis 怎样实现的分布式锁”又问“单机锁有哪些?它为什么不能在分布式环境下使用?”由于平时只是改改以前的框架代码,哥们当场懵逼!面完瞬间觉得自己的技术弱爆了...
  • Vue项目部署的最佳实践

    点击上方“前端教程”,选择“星标”每天前端开发干货第一时间送达!作者:沉末_juejin.im/post/5eb2243e51882555d8457833前言使用vue、react、angular等技术开发过程中,我们都会遇到以下问题:首屏加载慢每一次更新都需要清除浏览器缓存才能看到效果(经常被测试吐槽)这两个问题可以从很多方面进行优化,今天我就从前端页面部署阶段来优化一下这两个问题。PS:以下内容都基于vue-cli3+。前端页面文件缓存方案从vue-cli3打包说起路由使用按需加载后,打包生成的文件,每...
  • 你应该了解的Nacos配置中心

    背景 上回我们说到Nacos的注册中心,我们讲了注册中心的一致性协议,订阅和注册的原理,有兴趣的可以看一下上一篇文章:你应该了解的Nacos注册中心。在Nacos中还有一个功能特别重要那就是配置中心,在这里先不具体介绍配置中心是什么,先来忆苦思甜一波。在我们最开始做一些简单的学习项目的时候,我们会遇到一些需要配置的东西,比如数据库连接池大小,用户的黑名单等等,我们都把这些东西写死在代码里面,比如if(userId == 123){do something},这种代码在项目里随处可见。后来参加工作了,发现这种...
  • 动画:深入浅出从根上理解 HTTP 缓存机制及原理!

    Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨小鹿 来源丨小鹿动画学编程HTTP 缓存,对于前端的性能优化方面来讲,是非常关键的,从缓存中读取数据和直接向服务器请求数据,完全就是一个在天上,一个在地下。我们最熟悉的是 HTTP 服务器响应返回状态码 304,304 代表表示告诉浏览器,本地有缓存数据,可直接从本地获取,无需从服务器获取浪费时间。至于为什么被缓存,如何命中缓存以及缓存什么时候生效的,我们却很少在实际开...
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。