学习笔记

vim编辑器的使用详解

在Linux江湖,最常用到的编辑器非vim莫属,vim的功能很强大。 1. vim简介 在Linux世界中,最长用到的而且功能比较强大的是Vim编辑器。Vim编辑器是在内存缓冲区中处理数据。 vim 文件名 or vi 文件名 都可以通过vim打开文件 一般vim打开文件功能更多一些,特别是对于shell脚本这种文本,会有不同字符的高亮显示。 如果启动vim时未指定文件名,或者指定的文件名不存在,vim会开辟一段新的缓冲区域来编辑。 vim /etc/passwd ...

Redis集群增加节点和删除节点

 本文主要是承接上一篇文章Redis集群的离线安装成功以后,我们如何进行给集群增加新的主从节点(集群扩容)以及如何从集群中删除节点(集群缩容),也就是集群的伸缩,集群伸缩的原理是控制虚拟槽和数据在节点之间进行移动,通过实际操作来整理一下集群的伸缩。   上篇文章中搭建好的集群为三主三从,端口号为7000、7001、7002、7003、7004、7005。   查看集群启动情况:ps -ef | grep redis 查看集群的slots分配情况以及节点之间的主从关系:   首先登陆节点7000:redis-cli -p 7000 -h 192.168.182.132 -c //注意不要丢了-c ...

javascript实现二叉搜索树

在使用javascript实现基本的数据结构中,练习了好几周,对基本的数据结构如 栈、队列、链表、集合、哈希表、树、图等内容进行了总结并且写了笔记和代码。 在 github中可以看到 点击查看,可以关注一下我哈。 树的基本术语 二叉树节点的存储结构 创建一个二叉搜索树 二叉树的先序、中序、后续遍历算法 二叉树的非递归先序、中序、后续遍历算法。 文章对树了解的不多的人有点不友好,这里简单介绍(从书上抄下来)那些基本的一点概念吧。 看下面这个示意图 ...

计算机的诞生和简史

 背景从第一台计算机诞生到现在已经七十多年了,计算机已经和我们的生活息息相关,很多小伙伴上来就接触高端设备,计算机过去是怎么发展起来的,我觉得还是了解一下会比较好,我是历史爱好者,所以我个人认为学习任何东西都要了解它的过去,就像我以前历史老师跟我说的“不了解过去的人,不会了解现在和未来”,这篇文章就像讲故事,轻松的大家回顾下计算机的发展简史...

6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 导读:随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 在 Logging 这块做了几年,最近 1 年来越来越多的同学来咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。 ...

Git之rebase、merge和cherry pick的区别详解—面试常问

git flow 镇楼 merge 这个简单,初学者常用。比如主分支是Dev,最新版本是01。然后小明基于此,搞了个feature 分支A,业务:打酱油 然后在上面多次提交,完成功能迭代开发,如A1 ---> A2 ---> A3 Dev 分支 merge A branch,最后Dev 分支的历史log就变成: Dev01 ---> A1 ---> A2 ---> A3 附图如下: rebase 中文翻译过来,变基。这个搞完,提交历史会比较清爽,哈哈 a) merge会有两条提交历史记录线路,有个菱形图(C2, C3, C4, C5间关系) ...

并发编程之线程创建到销毁、常用API

  在前面一篇介绍了线程的生命周期【并发编程之多线程概念 】,在本篇将正式介绍如何创建、中断线程,以及线程是如何销毁的。最后,我们会讲解一些常见的线程API。...

「小技巧」使用Git从其他分支merge个别文件

小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发。 项目背景 产品经理:我们本次开发三个功能,列表页功能、详情页功能、系统消息功能,分两次上线,先上列表功能,再上详情页和系统消息。 小明:好的吧。 紧接着,小明就将本次需求分为2个分支,分别为A、B。 A:开发列表页功能 B:开发详情页功能、系统消息功能 原计划:产品经理说先上列表功能,那小明就先开发A分支,列表功能很快开发完成(厉害吧)。 ...

一、springboot起航

前言 之前零零散散的学习了一些springboot的知识,以及搭建一些springboot的项目,甚至还有一些项目应用到实际项目中了,但是突然有一天想要建一个自己的项目网站。发现自己不知道从何开始。发现自己虽然用了很久,但是让自己 从头开始搭建一个却处处碰壁。所以静下心来好好的整理一下springboot的知识点。以及给自己搭建一个springboot 项目的脚手架。以后方便自己套用。 创建spring boot项目 springboot的之所以火热便是因为开箱即用的特效,低配置甚至无配置使用,方便我们快速上手,我们这里先就什么都不配置吧。 ...

Java之BigDecimal详解

一、BigDecimal概述 ​ Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。 ...

浅谈Java反序列化漏洞原理(案例未完善后续补充)

img 序列化用途:方便于对象在网络中的传输和存储 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化、XML序列化、二进制序列化、SOAP序列化 序列化:java.io.ObjectOutputStream 类中的 writeObject() 该方法把对象序列化,将字节序列写到一个目标输出流中(.ser扩展名) 反序列化:java.io.ObjectInputStream 类中的 readObject() 从输入流中读取字节序列,再将其反序列化为对象 ...

【Rocketmq】通过 docker 快速搭建 rocketmq 环境

1. 安装 Namesrv 拉取镜像 docker pull rocketmqinc/rocketmq:4.4.0` 启动容器 docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq:4.4.0 sh mqnamesrv ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程