首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客229127715号
获赞
290
粉丝
189
关注
4
看过 TA
185
首钢工学院
2019
Java
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客229127715号吗?
发布(4982)
评论
刷题
牛客229127715号
关注TA,不错过内容更新
关注
2021-06-22 20:14
首钢工学院 Java
Redis持久化的几种方式——深入解析RDB
Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。 1.持久化的几种方式 Redis 持久化拥有以下三种方式: 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的方式写入磁盘; 文件追加方式(AOF, Appen...
0
点赞
评论
收藏
分享
2021-06-22 20:14
首钢工学院 Java
用Redis 实现“附近的人”这个功能的最全详解
前言 针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。 要提供完整的“附近的人”服务,最基本的是要实现“增”、“删”、“查”的功能。以下将分别进行介绍,其中会重点对查询功能进行解析。 操作命令 自Redis 3.2开始,Redis基于geohash和有序集合提供了地理位置相关功能。 Redis Geo模块包含了以下6个命令:...
0
点赞
评论
收藏
分享
2021-06-22 20:13
首钢工学院 Java
Redis 分布式锁的正确打开方式
前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。 可靠性 首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要...
0
点赞
评论
收藏
分享
2021-06-22 20:13
已编辑
首钢工学院 Java
相当架构师? 先把这100多技术学会先!
前言 本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜欢的,大概也会有你所讨厌的家伙。这是我平常工作中打交道最多的工具,大小公司都适用。如果你有更好的,欢迎留言补充。 一、消息队列 二、缓存 三、分库分表 四、数据同步 五、通讯 六、微服务 七、分布式工具 八、监控系统 九、调度 十、入口工具 十一、OLT(A)P 十二、CI/CD 十三、问题排查 十四、本地工具 复制代码 一、消息队列 一个大型的分布式系统,通常都会异步化,走消息总线。 消息队列作为最主要的基础组件,在整个体系架构中,有着及其重要的作用。 kafka是目前最常用...
0
点赞
评论
收藏
分享
2021-06-22 20:13
已编辑
首钢工学院 Java
架构师大门在此为你打开
最近学习了一些关于架构设计的知识想分享给大家。俗话说得好,不想当架构师的程序员不是好厨子。那么如何成为一名架构师呢?接下来就聊一聊我的一些想法。 什么是架构师 之前有同学问我,做了几年技术,应该转管理还是转架构师?对于这位同学,我给他的答案是,你要先踏踏实实做好现在的工作。因为就他提的问题来看,应该是刚入行不久或者是在校学生。 专心做技术的,都想做架构师。但架构师并不是说技术做时间长了可以转的。随着你的知识深度和广度的增加,在工作中会扮演更重要的角色,承担更大的责任,最终自然而然就会接触到架构设计的工作。 而架构师的主要工作,其实是利用架构设计知识以及丰富...
0
点赞
评论
收藏
分享
2021-06-22 20:12
首钢工学院 Java
Spring 中异常处理的各种姿势
1. 前言 统一的异常处理对于应用的重要性不言而喻。今天我们来介绍一下 Spring 如何来进行统一的 Rest 异常处理。同时我们也会简单比较一下它们之间的优劣。 2. @Controller 结合 @ExceptionHandler 在控制器中声明一个方法然后用 @ExceptionHandler 注解标记即可: @Controller @RequestMapping("/test") public class TestController { @RequestMapping("/err") @Response...
0
点赞
评论
收藏
分享
2021-06-22 20:12
已编辑
首钢工学院 Java
手写Spring框架,加深对Spring工作机制的理解!
前言 在我们的日常工作中,经常会用到Spring、Spring Boot、Spring Cloud、Struts、Mybatis、Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越来越轻松,我们用 Spring Boot 分分钟可以新建一个Web项目。 记得自己刚开始工作的时候还是在用Servlet写Web项目,自己写数据库连接池,用原生JDBC操作数据库,好了不发散了。回到这篇文章的主题,今天通过手写Spring框架,帮大家深入了解一下Spring的工作机制,文中涉及的代码只用来帮助大家理解Spring,不会在线上使用,有不严谨的地方还请...
0
点赞
评论
收藏
分享
2021-06-22 20:12
已编辑
首钢工学院 Java
手把手教你MySQL查询优化分析
前言 MySQL是关系性数据库中的一种,查询功能强,数据一致性高,数据安全性高,支持二级索引。但性能方面稍逊于非关系性数据库,特别是百万级别以上的数据,很容易出现查询慢的现象。这时候需要分析查询慢的原因,一般情况下是程序员sql写的烂,或者是没有键索引,或者是索引失效等原因导致的。 这时候MySQL 提供的 EXPLAIN 命令就尤其重要, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. 而且就在查询语句前加上 Explain 就成: EXPLAIN SELECT * FROM customer WHERE id < 10...
0
点赞
评论
收藏
分享
2021-06-22 20:11
首钢工学院 Java
一步一步带你入门MySQL中的索引和锁
索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构。 InnoDB的索引结构 在InnoDB中是通过一种多路搜索树——B+树实现索引结构的。在B+树中是只有叶子结点会存储数据,而且所有叶子结点会形成一个链表。而在InnoDB中维护的是一个双向链表。 你可能会有一个疑问,为什么使用 B+树 而不使用二叉树或者B树? 首先,我们知道访问磁盘需要访问到指定块中,而访问指定块是需要 盘片旋转 和 磁臂移动 的,这是一个比较耗时的过程,如...
0
点赞
评论
收藏
分享
2021-06-22 20:11
已编辑
首钢工学院 Java
Docker 构建脚本 Dockerfile 指令全解析
1. 前言 Dockerfile 是用来构建自定义 Docker 镜像的文本文档。我们通过docker build 命令用于从Dockerfile 文件构建镜像。 如果你要构建自定义镜像,Dockerfile 是你必须学会的技能之一。 2. Dockerfile 的基本结构 Dockerfile 一般分为:基础镜像、镜像元信息、镜像操作指令和容器启动时执行指令,# 为 Dockerfile 中的注释。 3. Dockerfile 文件说明 Docker 从上到下的顺序运行Dockerfile 的指令,每一个指令都以 step 为步骤。而且文件的命名也必须为 Dockerfile 。 ...
0
点赞
评论
收藏
分享
2021-06-22 20:10
已编辑
首钢工学院 Java
17张图带你解析红黑树的原理!
二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意结点的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 任意结点的左、右子树也分别为二叉查找树。 没有键值相等的结点(no duplicate nodes)。 因为,一棵由n个结点,...
0
点赞
评论
收藏
分享
2021-06-22 20:10
已编辑
首钢工学院 Java
高性能秒杀系统的设计思考,超详细!
前言 秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。 整体思考 首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并发读,一是并发写,对应到架构设计,就是高可用、一致性和高性能的要求。关于秒杀系统的设计思考,本文即基于此 3 层依次推进,简述如下—— 高性能。 秒杀涉及高读和高写的支持,如何支撑高...
0
点赞
评论
收藏
分享
2021-06-22 20:10
已编辑
首钢工学院 Java
《提升能力,涨薪可待》-Java并发之AQS全面详解
前言 是不是感觉在工作上难于晋升了呢? 是不是感觉找工作面试是那么难呢? 是不是感觉自己每天都在996加班呢? 在工作上必须保持学习的能力,这样才能在工作得到更好的晋升,涨薪指日可待,欢迎一起学习【提升能力,涨薪可待】系列 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢迎一起学习【面试知识,工作可待】系列 最后,理论知识到准备充足,是不是该躬行起来呢?欢迎一起学习【实战演练,拒绝996】系列 一、AQS是什么?有什么用? AQS全称AbstractQueuedSynchronizer,即抽象的队列同步器,是一种用来构建锁和同步器的框架。 基于...
0
点赞
评论
收藏
分享
2021-06-22 20:09
已编辑
首钢工学院 Java
Java I/O体系从原理到应用,这一篇全说清楚了
基础概念 在介绍I/O原理之前,先重温几个基础概念: (1) 操作系统与内核 操作系统:管理计算机硬件与软件资源的系统软件 内核:操作系统的核心软件,负责管理系统的进程、内存、设备驱动程序、文件和网络系统等等,为应用程序提供对计算机硬件的安全访问服务 2 内核空间和用户空间 为了避免用户进程直接操作内核,保证内核安全,操作系统将内存寻址空间划分为两部分: 内核空间(Kernel-space),供内核程序使用 用户空间(User-space),供用户进程使用 为了安全,内核空间和用户空间是隔离的,即使用户的程序崩溃了,内核也不受影响 3 数据流...
0
点赞
评论
收藏
分享
2021-06-22 20:09
已编辑
首钢工学院 Java
2019年18家大厂Java面试题整理了350道(分布式+微服务+高并发)
前言 2019年还有不到2个月的时间就结束了,这一你,你收获了多少? 前段时间一直有粉丝问我,有没有今年一些大厂Java面试题总结?最新抽时间整理了一些,分享给大家,大家一起共享学习! 一、性能调优系列 1.Tomcat性能调优 JVM参数调优: -Xms<size> 表示JVM初始化堆的大小,一Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此- -般建议堆的最大值设置为可用内存的最大值的80%。在catalina.bat中,设置JAVA...
0
点赞
评论
收藏
分享
1
6
7
8
9
10
333
关注他的用户也关注了:
牛客网
牛客企业服务