自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(784)
  • 收藏
  • 关注

原创 Redis实操(20429字总结)

之前都是通过看视屏,博客,公众号的形式来学习,还是很零散的,这次买了工作以来第一本技术书《Redis深度历险:核心原理与应用实践》,先粗略读了一遍,现在用笔记的形式把重点再记录下。 2020-7.26注:List的结构中:当数据量大的时候 Redis将链表和ziplist结合起来组成了quicklist1.2.2 5种基础数据结构stringRedis的字符串是动态字符串,是可以修改的字符串,采用预分配冗余空间的方式来减少内存的频繁分配。当字符串长度小于1MB是,扩容

2020-07-26 16:23:05 623 2

原创 从JMM数据原子操作来分析volatile

并发编程的三个性质:原子性,可见性,有序性JMM数据原子操作:volatile 进行i++操作会出问题的分析两线程同时对i做i++,线程1往内存写经过总线时被线程2感知到了,线程2做i++的操作已经做完了,然而因为感知到i变了,做i无效化重新读,所以线程2做的那次i++的操作执行了但是没起作用问题在讨论原子性操作时,我们经常会听到一个说法:任意单个volatile变量的读写具有原子性,但是volatile++这种操作除外。所以问题就是:为什么volatile++不是原子性

2020-06-24 11:01:42 165 1

原创 soft nofile

原创文章,转载请注明出处:http://jameswxx.iteye.com/blog/2096461写这个文章是为了以正视听,网上的文章人云亦云到简直令人发指。到底最大文件数被什么限制了?too many open files错误到底可以通过什么参数控制?网上的很多文章说的大致步骤是没有错的,大致如下:shell级限制通过ulimit -n修改,如执行命令ulimit -n 1000,则表示将当前shell的当前用户所有进程能打开的最大文件数量设置为1000.用户级限制ulimit ...

2021-11-29 17:29:40 11

原创 Systemd使用小结

systemd可以用来做什么systemd可以在后台以daemon的形式运行程序,并可以控制和监视进程。当进程被意外终止,可以自动拉起进程;当机器重启后,可以自动启动进程。从而可以保证后台服务的稳定性,不用在写一堆crontab来拉起进程。如何使用systemd使用systemd通过以下步骤来实现:编写xxx.service文件,并放置于/etc/systemd/system目录下; 执行systemctl daemon-reload命令,让systemd重新加载service;(每次se

2021-11-29 17:21:34 108

原创 df -h和du -h 占用空间为什么差这么多?

当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。du可以查看文件及文件夹的大小。两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。下面分别简要介绍df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子: 以下是代码片段: [yayug@yayu ~...

2021-11-26 15:40:31 4

原创 cpu看起来很高级的超线程到底对你有什么用?

在以往这个时候是又到了开学配机的时候了,不巧赶上今年肺炎肆虐,我是不知道学生们要到什么时候才能重返校园了。说起开学配机,一般人可能最多知道intel的i7高级但是贵,如果钱不过就少花点买i5或者i3。再细问他们之间有什么区别,可能最多再知道是核心数量和线程数量不同就不错了。核心数量更多能力更强很好理解,可是超线程也是一样的吗。从跑分上看的确如此,多了那些框框之后,跑分数字的确有了相应的提高。但是超线程多出的框框,真的和其他真实的核心一样,能够在任何时候都能为你提供相应的能力吗?这里用

2021-11-11 19:49:40 13

原创 A Guide To The Kafka Protocol

A Guide To The Kafka Protocol - Apache Kafka - Apache Software Foundation

2021-11-11 19:45:24 796

原创 设置redis访问(AUTH)密码

在服务器上,这里以linux服务器为例,为redis配置密码。1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,)(1)首先进入redis,如果没有开启redis则需要先开启:[root@iZ94jzcra1hZ bin]# redis-cli -p 6379127.0.0.1:6379>(2)查看当前redis有没有设置密码:127.0.0.1:6379> config get requirepass1) "req.

2021-11-09 11:39:01 10

原创 grep 命令系列:grep 中的正则表达式

正则表达式正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列。下面是范例:^w1w1|w2[^ ]grep 正则表达式示例在 /etc/passswd 目录中搜索 'vivek'grep vivek /etc/passwd输出例子:vivek:x:1000:1000:Vivek Gite,,,:/home/vivek:/bin/bashvivekgite:x:1001:1001::/home/vivekgite:/bin/shgitevivek:x:

2021-10-20 10:18:31 20

原创 go duration比较

func Test() {var waitFiveHundredMillisections time.Duration = 500 * time.MillisecondstartingTime := time.Now().UTC()time.Sleep(600 * time.Millisecond)endingTime := time.Now().UTC()var duration time.Duration = endingTime.Sub(startingTime)if duratio

2021-10-14 14:59:27 44

原创 kafka有些分区leader为-1的问题

现象get /kafka/brokers/topics/stock_ticks_test1/partitions/0/state{"controller_epoch":12,"leader":-1,"version":1,"leader_epoch":5,"isr":[5]}原因broker shutdown的时候,partition的leader在此broker上,controller选主没有成功,移除此broker后,对应的partition的leader就被赋值成-1了解决重启con

2021-10-11 21:46:57 78

原创 git checkout -b

创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch更新master主线上的东西到该分支上:$git rebase master切换到master分支:$git checkout master更新mybranch分支上的东西到master上:$git rebase mybranch提交:git commit -a对最近一次commit的进行修改:git c

2021-10-09 18:21:08 15

原创 Sed (参数) ‘s###g‘ 详解

2021-09-29 17:51:13 81

原创 linux ln 命令使用参数详解(ln -s 软链接)

这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbolic)的意

2021-09-29 17:30:13 31

原创 Container 命令ctr、crictl 命令使用说明作者:

Container 命令ctr、crictl 命令使用说明 关注Linux相关技术-系统运维-网络运维-脚本编程-容器-微服务-K8S-分布式-应用服务等 Akiraka一、ctr 命令使用Container命令ctr,crictl的用法版本:ctr containerd.io 1.4.3containerd 相比于docker , 多了namespace概念, 每个image和container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间~~1.1、查

2021-09-28 14:43:52 628

原创 【Git】rebase 用法小结

本文主要参考https://git-scm.com/docs/git-rebase【Git】rebase 用法小结 - 简书rebase在git中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。它的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁!前提:不要通过rebase对任何已经提交到公共仓库中的commit进行修改(你自己一个人玩的分支除外)1.合.

2021-09-26 18:25:18 6

原创 冒烟测试和回归测试

冒烟测试和回归测试前言:冒烟测试和回归测试,都只是测试的一种过程,这两种测试贯穿了整个 app 的生命周期。冒烟测试冒烟测试,究竟是什么冒烟测试,是微软首先提出来的一个概念(Smoke Testing),一直以来都被认为和 BVT(Build Verification Test --版本验证测试)扯不清。但它们其实共同点都是强调要对程序的主要功能进行验证,只有通过了主要功能的测试,才能后续更细化的测试流程。冒烟测试的优势冒烟测试,虽说是测试方法的一种,但如果紧紧认为它是一种测试,那就

2021-09-24 10:53:51 58

原创 shell之BASH_SOURCE

BASH_SOURCE表示的是用户所在的目录到脚本的路径。例如测试脚本如下:#!/bin/bashecho ${BASH_SOURCE}123执行脚本结果如下:[root@hadoop01 sbin]# ./test./test[root@hadoop01 sbin]# cd ..[root@hadoop01 hadoop-2.7.7]# sbin/testsbin/test————————————————版权声明:本文为CSDN博主「xiaoqie159」的原创文章,遵..

2021-09-22 18:23:09 50

原创 wireshark抓包分析

分析一下wireshark出现的一些常见提示:TCP Out_of_Order一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。TCP Retransmission很明显是上面的超时引发的数据重传TCP dup ack XXX#X就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。tcp previous segment not captured意思就是报文没有捕捉到,出现报文的丢失。TCP

2021-09-16 16:23:56 49

原创 TCP连接中启用和禁用TCP_NODELAY有什么影响?

TCP/IP协议中针对TCP默认开启了Nagle算法。Nagle算法通过减少需要传输的数据包,来优化网络。在内核实现中,数据包的发送和接受会先做缓存,分别对应于写缓存和读缓存。启动TCP_NODELAY,就意味着禁用了Nagle算法,允许小包的发送。对于延时敏感型,同时数据传输量比较小的应用,开启TCP_NODELAY选项无疑是一个正确的选择。比如,对于SSH会话,用户在远程敲击键盘发出指令的速度相对于网络带宽能力来说,绝对不是在一个量级上的,所以数据传输非常少;而又要求用户的输入能够及时获得返回,有较低

2021-09-14 14:39:27 46

原创 nc的使用

什么是ncnc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具nc的作用(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口(2)端口的扫描,nc可以作为client发起TCP或UDP连接(3)机器之间传输文件(4)机器之间网络测速 ...

2021-09-13 16:12:00 30

原创 Mac OS环境变量配置

Mac OS环境变量配置1、打开终端,输入vim ~/.bash_profile以上命令可能会出现警告:Swap file "~/.bash_profile.swp" already exists!,出现这个警告的原因是:  vim 编辑过程中,由于某种原因异常退出正在编辑的文件,再次编辑该文件时,会出现该提示。使用vim编辑文件实际是先 copy一份临时文件并映射到内存给你编辑, 编辑的是临时文件, 当执行:w 后才保存临时文件到原文件,执行:q 后才删除临时文件。每次启动检索是否有临时

2021-09-13 16:10:53 43

原创 golang 中string和int类型相互转换

总结了golang中字符串和各种int类型之间的相互转换方式:string转成int:int, err := strconv.Atoi(string)string转成int64:int64, err := strconv.ParseInt(string, 10, 64)int转成string:string := strconv.Itoa(int)int64转成string:string := strconv.FormatInt(int64,10)以备查询————————————————

2021-09-13 15:28:02 15

原创 nginx深度学习

https://wiki.jikexueyuan.com/project/nginx/upstream-module.html

2021-09-13 15:26:33 16

原创 How to set array document into redis in Golang?

Like the error message says, you need to implement theBinaryMarshalerinterface for yourArticleCoverstype:type ArticleCovers struct { ID int Covers ArticleCovers ArticleTypeID int Address Address `gorm:...

2021-09-13 15:23:40 6

原创 添加新的broker, 会自动同步旧数据的.

笨办法环境介绍三个broker的集群, zk,kafka装在一起| broker | IP | broker.id ||---------|---------------|-----------|| broker1 | 172.18.12.211 | 211 || broker2 | 172.18.12.212 | 212 || broker3 | 172.18.12.213 | 213 |创建测试topic#./bin/kafka-topics.sh --zookee..

2021-09-06 21:05:31 19

原创 Docker容器进入的4种方式

在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。进入Docker容器比较常见的几种做法如下:使用docker attach 使用SSH 使用nsenter 使用exec一、使用docker attach进入Docker容器  Docker提供了attach命令来进入Docker容器。  接下来我们创建一个守护态的Docker容器,然后使用docker attach命

2021-09-06 21:01:09 8

原创 shell编程中的表达式(-d, -f, -L 等)

1. 文件表达式-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真-f filename 如果 filename为常规文件,则为真-L filename 如果 filename为符号链接,则为真-r filename 如果 filename可读,则为真-w filename 如果 filename可写,则为真-x filename 如果 filename可执行,则为真-s filename 如果文件长度不为0,则为真...

2021-09-02 10:52:43 22

原创 mv 使用的坑

mv a b如果a 和 b都是文件夹,且b存在,那么会 形成 b/a b不存在,那么会形成b/正确方式应该是mv a/* b

2021-09-02 10:49:28 10

原创 kubectl exec 执行 容器命令

格式如下:kubectl exec -it podName -c containerName -n namespace -- shell comand1 创建目录kubectl exec -it spark-master-xksl -c spark-master -n spark -- mkdir -p /usr/local/spark 注意:shell命令前,要加-- 号,不然shell命令中的参数,不能识别...

2021-08-31 21:34:16 133

原创 打开history

export HISTSIZE=200

2021-08-31 16:15:45 8

原创 一款好用的屏幕录制gif软件

https://www.cockos.com/licecap/

2021-08-27 14:08:17 5

原创 蓝绿部署,滚动部署区别

2021-08-23 15:15:14 15

原创 Go 计算程序运行时间

1.计算代码块的运行时间start := time.Now()//some func or operationcost := time.Since(start)fmt.Printf("cost=[%s]",cost)其中time.Since()函数返回字符串类型,例如1h2m3s等,可能还有us等2.计算函数的运行时间func compute() { start := time.Now() defer func() { cost := time.Sin

2021-08-20 10:05:30 67 2

原创 curl 的用法指南

简介curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。不带有任何参数时,curl 就是发出 GET 请求。$ curl

2021-08-18 18:01:25 11

原创 go saram 消费者调用逻辑

业务层:NewConsumer(client.mBrokers, group, topic, config)cluster-comsuer.go构造Consumer:consumer, err := sarama.NewConsumerFromClient(client.Client)c.client.RefreshCoordinator(groupID)//获取组协调者起循环for {c.nextTick}nextTick:重平衡->订阅主题->fetchOf

2021-08-18 11:09:27 14

原创 fping

fping是一个小型命令行工具,用于向网络主机发送ICMP(Internet控制消息协议)回应请求,类似于ping,但在ping多个主机时性能要高得多。fping完全不同于ping,因为您可以在命令行上定义任意数量的主机,或者指定包含要ping的IP地址或主机列表的文件。另请参阅:Linux系统管理员的网络管理,故障排除和调试指南例如,使用fping,我们可以指定完整的网络范围(192.168.0.1/24)。它会向主机发送Fping请求,并以循环方式移动到另一个目标主机。与pi...

2021-08-09 21:23:00 35

原创 linux如何查看端口被谁占用(lsof -i与netstat命令)

1、lsof -ilsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列

2021-08-04 17:01:55 32

原创 linux lsof命令详解

简介lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以

2021-08-04 16:58:11 17

原创 kubebuilder 进阶使用

上一篇文章中介绍了 kubebuilder 的简单使用方法以及实现一个简单的逻辑。本篇文章则深入kubebuilder源码,深入学习kubebuilder开发。Status在开发 operator,每种自定义资源只能包含有两种子资源——Status 和 Scale。这里探究一下Status的使用。在 Kubebuilder 自动生成的CR结构体中,已经为我们生成了 Status 的结构体,但此时 Status 仍非 CR 的子资源。type SampleSpec struct {

2021-08-03 21:20:25 70

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除