Linux工具-awk
参考文献
AWK 简明教程
AWK
awk是逐行处理的,逐行处理的意思就是说,当awk处理一个文本时,会一行一行进行处理,处理完当前行,再处理下一行,awk默认以”换行符”为标记,识别每一行,也就是说,awk跟我们人类一样,每次遇到”回车换行”,就认为是当前行的结束,新的一行的开始,awk会按照用户指定的分割符去分割当前行,如果没有指定分割符,默认使用空格作为分隔符。
内建变量
变量
说明
$0
当前记录(这个变量中存放着整个行的内容)
$1~$n
当前记录的第n个字段,字段间由FS分隔
FS
输入字段分隔符 默认是空格或Tab
NF
Number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量
NR
行号,当前处理的文本行的行号
FNR
各个文件自己的行号
RS
输入的记录分隔符, 默认为换行符
OFS
输出字段分隔符, 默认也是空格
ORS
输出的记录分隔符,默认为换行符
FILENAME
当前输入文件的名字
ARGC
命令行参数的个数
ARGV
数组,保存的是命令行所在给定的各个参数
...
Linux工具-sed
参考文献
sed
sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
每次仅读取一行内容;
根据提供的规则命令匹配并修改数据.注意,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据;
将执行结果输出.
当一行数据匹配完成后,它会继续读取下一行数据,并重复这个过程,直到将文件中所有数据处理完毕.
12345678910111213141516171819202122232425262728293031323334353637➜ ~ sedUsage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script a ...
Redis-Cluster
参考文献
为什么引入Redis Cluster
Cluster(集群)模式的出现是解决了Redis单机容量有限的问题,解决了大数据量存储导致的各种慢问题,同时也便于横向拓展.该种模式会将Redis中数据按照一定规则划分到多台机器上.这种模式有两个特点:
能够在多个节点之间自动拆分数据集.
当节点的子集遇到故障或无法与群集的其余部分通信时,能够继续操作.
两种方案对应着 Redis 数据增多的两种拓展方案: 垂直扩展(scale up)、水平扩展(scale out).
垂直拓展: 升级单个 Redis 的硬件配置,比如增加内存容量、磁盘容量、使用更强大的 CPU.
水平拓展: 横向增加 Redis 实例个数,每个节点负责一部分数据.
Redis Cluster数据迁移
Redis Cluster迁移数据的整个过程可以分成五个大步骤,分别是:
标记迁入、迁出节点;
获取迁出的 keys;
源节点实际迁移数据;
目的节点处理迁移数据;
标记迁移结果.
Redis-最佳实践
参考文献
黑马Redis
Redis键值设计
Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定:
遵循基本格式:[业务名称]:[数据名称]:[]
长度不超过44字节
不包含特殊字符
好处:
可读性强
避免key冲突
方便管理
更节省内存: key是string类型,底层编码包含int、embstr和raw三种。embstr在小于44字节使用,采用连续内存空间,内存占用更小。当字节数大于44字节时,会转为raw模式存储,在raw模式下,内存空间不是连续的,而是采用一个指针指向了另外一段内存空间,在这段空间里存储SDS内容,这样空间不连续,访问的时候性能也就会收到影响,还有可能产生内存碎片
拒绝BigKey
BigKey通常以Key的大小和Key中成员的数量来综合判定,例如:
Key本身的数据量过大:一个String类型的Key,它的值为5 MB
Key中的成员数过多:一个ZSET类型的Key,它的成员数量为10,000个
Key中成员的数据量过大:一个Hash类型的Key,它的成员数量虽然只有1,000个但这些成员的Value(值)总大小为 ...
RabbitMQ-基本操作
参考文献
RabbitMQ实战
基本命令
服务器操作指令
1234567891011121314# 查看服务器状态./rabbitmqctl status# 启动RabbitMQ./rabbitmq-server# 以守护进程方式启动RabbitMQ./rabbitmq-server -detached# 停止RabbitMQ./rabbitmqctl stop# 打印RabbitMQ的配置文件信息cat /etc/rabbitmq/rabbitmq.conf
RabbitMQ中每个队列,交换器和绑定的元数据(除了消息的内容)都保存到Mnesia中.Mnesia是内奸在Erlang的非SQL型数据库.Mnesia通过将RabbitMQ元数据首先写入一个仅追加的日志文件,以确保其完整性.然后,它再定期将日志内容转储到真实的Mnesia数据库文件中.
用户相关操作指令
123456789101112131415161718# 创建用户rabbitmqctl add_user test testpwdAdding user "test" ..# 删除用户rabbi ...
(转载)Git飞行规则(Flight Rules)
Git飞行规则(Flight Rules)
前言
英文原版README
翻译可能存在错误或不标准的地方,欢迎大家指正和修改,谢谢!
什么是"飞行规则"?
这是一篇给宇航员(这里就是指使用Git的程序员们)的指南,用来指导问题出现后的应对之法。
飞行规则(Flight Rules) 是记录在手册上的来之不易的一系列知识,记录了某个事情发生的原因,以及怎样一步一步的进行处理。本质上,
它们是特定场景的非常详细的标准处理流程。 […]
自20世纪60年代初以来,NASA一直在捕捉(capturing)我们的失误,灾难和解决方案, 当时水星时代(Mercury-era)
的地面小组首先开始将“经验教训”收集到一个纲要(compendium)中,该纲现在已经有上千个问题情景,从发动机故障到破损的舱口把手到计算机故障,以及它们对应的解决方案。
— Chris Hadfield, 一个宇航员的生活指南(An Astronaut’s Guide to Life)。
这篇文章的约定
为了清楚的表述,这篇文档里的所有例子使用了自定义的bash 提示,以便指示当前分支和是否有 ...
工具-插件篇
插件篇
Chrome插件
GitHub Downloader
Octotree - GitHub code tree
GitHub 加速
Sourcegraph
Awesome Autocomplete for GitHub
File Icons for GitHub and GitLab
GitHub Isometric Contributions
Markdown Menu for GitHub
超级好用的前端开发测试Chrome插件 - WEB前端助手(FeHelper)
Maven插件
flatten-maven-plugin: 处理版本占位符
IDEA插件
JRebel 热加载插件
Grep Console
代码显示 CodeGlance
页面美化
Rainbow Brackets
Atom Material Icons
Java Stream Debugger (IDEA自带)
.ignore git忽略文件
SequenceDiagram 时序图
String Manipulation
一个比较实用的字符串转换工具,比如我们平时的变量命名可以一键转换驼峰 ...
工具-网站篇
网站篇
日常使用
临时邮箱
http://24mail.chacuo.net/
https://10minutesemail.net/
ChatGPT
https://poe.com/
https://chatguide.plexpt.com/
在线作图
https://www.processon.com/
https://online.visual-paradigm.com/drive/#infoart:proj=0&dashboard
https://asciiflow.com/#/
https://handraw.top/ 手绘风格的画图网站
https://app.diagrams.net/
BPMN流程图绘制
https://demo.bpmn.io/new
文件格式转换
https://smallpdf.com/cn
https://convertio.co/zh/
https://cloudconvert.com/
https://pdftoword.55.la/pdf2cad/
https://toepub.com/
https://compr ...
工具-实用工具篇
实用工具篇
OSS工具
rclone OSS同步工具
cyberduck OSS客户端
Java工具
JVM性能监控分析工具
arthas
Jconsole: jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.
JProfiler:商业软件,功能强大.
VisualVM:JDK自带,功能强大,与JProfiler类似.
MAT:MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具.
btrace
gperftools
classfinal
ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework,可避免源码泄漏或字节码被反编译.
性能测试工具
ab(ApacheBench)
JMeter
stress
磁盘测试工具ezfio
nmon
MySQL工具
压测工具
mysqlslap
sysbench
命令行语法提示工具
mycli
沙箱
MySQL Sand ...
工具-编程框架篇
编程框架Java篇
数据库
数据库文档生成框架: screw
测试
造数据
easy-random
Java Faker
框架
JMH
参考文章: Java微基准测试框架JMH
Java Hamcrest
jcstress
The Java Concurrency Stress tests (jcstress) is an experimental harness and a suite of tests to aid the research in the correctness of concurrency support in the JVM, class libraries, and hardware.
单元覆盖率
JaCoCo
二维码
zxing
工具集
Hutool
Guava
ID
Hashids
OSS
Minio
模版语言
Velocity
Freemaker
Thymeleaf
表达式引擎
AviatorScript
Excel
easy-excel
Apache POI
xlsx-streame ...