- 博客(306)
- 资源 (5)
- 收藏
- 关注
原创 BloomFilter原理学习
BloomFilter我们可能经常听到也在使用, 它的特点是如果判断结果为"不存在", 则一定不存在;如果判断为存在, 则可能存在. 如下图未说明当我们判断z元素存在时, 其实是不存在的, 即存在有概率性.
2023-03-05 18:28:30
438
原创 silversearcher-ag命令(Recursively search for PATTERN in PATH)
背景如果你有使用grep -r的经历, 那么其搜索速度可能可能会让人抓狂. ag命令比grep -r功能强太多, 而且搜索速度非常快!官网https://github.com/ggreer/the_silver_searcher安装centos系统安装:sudo yum install the_silver_searcherubuntu系统安装:sudo apt install silversearcher-ag使用$ pwd/data/soft/istio-1.13.4$ ag
2022-05-29 17:32:28
165
转载 [转载]Kubernetes网络三部曲之三 ~ NodePort vs LoadBalancer vs Ingress
文章目录前言NodePortLoadBalancerIngressKubectl Proxy & Port Forward总结原文链接原文链接: https://blog.csdn.net/yang75108/article/details/101268208前言在上一篇《Kubernetes网络三部曲~Service网络》中,波波讲解了K8s的4层网络栈中的第2层Service网路。有了Service网络,K8s集群内的应用可以通过服务名/ClusterIP进行统一寻址和访问,而不需要关心
2022-03-10 02:30:00
164
转载 [转载]Kubernetes网络三部曲之二~Service网络
文章目录前言Service网络概念模型服务发现技术演进K8s的Service网络原理总结原文链接原文链接:https://blog.csdn.net/yang75108/article/details/101267444前言在上一篇《Kubernetes网络三部曲~Pod网络》中,波波讲解了K8s的4层网络中的第1层Pod网络。有了Pod网络,K8s集群内的所有Pods在逻辑上都可以看作在一个平面网络内,可以正常IP寻址和互通。但是Pod仅仅是K8s云平台中的虚拟机抽象,最终,我们需要在K8s集群中运
2022-03-01 10:03:11
160
转载 [转载]Kubernetes网络三部曲之一~Pod网络
文章目录前言Pod网络概念模型同一节点上的Pod网络不同节点间的Pod网络总结原文链接原文链接:https://blog.csdn.net/yang75108/article/details/101101384前言K8s是一个强大的平台,但它的网络比较复杂,涉及很多概念,例如Pod网络,Service网络,Cluster IPs,NodePort,LoadBalancer和Ingress等等,这么多概念足以让新手望而生畏。但是,只有深入理解K8s网络,才能为理解和用好K8s打下坚实基础。为了帮助大家理
2022-03-01 09:44:39
192
原创 Linux容器核心技术之: Cgroups
文章目录Cgroups是什么?Cgroups中的三个组件cgroup 用于对进程分组, 分组后便于统一设置资源限制;subsystem 用于对资源做限制及监控;hierarchy三个组件的相互关系cgroup 文件系统(cgroupfs)介绍Cgroups使用示例在cgroup中添加和移动进程通过subsystem限制cgroup中进程的资源参考Cgroups是什么?查看linux man page: https://man7.org/linux/man-pages/man7/cgroups.7.htm
2022-02-04 11:27:54
1501
原创 Linux容器核心技术之: namespace
linux的namespace是什么关于linux的namespace, 官方文档是这么说的:A namespace wraps a global system resource in an abstraction thatmakes it appear to the processes within the namespace that theyhave their own isolated instance of the global resource. Changesto the glo
2022-01-30 21:13:30
3638
1
原创 redis之lua脚本: 原子性 & 调试 & 嵌入高级语言
实验环境:redis: 6.0.9redis执行lua脚本时, 出错不会rollback我们知道, 使用lua脚本可以在执行一串redis命令时, 实现一定原子性(lua脚本中多条指令执行过程中不会被插入新的指令), 但是并不能在命令执行出错时, 回退之前的结果, 如下示例:demo.luaredis.call('get', 'xx')redis.call('set', 'a1', 'b1')redis.call('set', 'a2')显然最后的set a2是有语法错误的, 在执行前
2022-01-26 16:51:37
1577
原创 mongo 模糊搜索并按相关性排序
文章目录问题构造数据复现问题问题分析问题解决问题有一张user表, 其有name, age, …等字段, 现在的要求是: 按name模糊搜索(正则匹配) , 然后分页输出.构造数据为了说明问题, 构造数据, 无关字段省略, 只保留name, age字段方便观察:function genName(base, n) { var res = []; var prev = Date.now(); var suffix = 0; for (var i = 0; i < n; i++)
2021-12-20 13:23:17
672
2
原创 python 将requests转为curl命令行格式
将python的requests请求转为curl命令行格式, 方便调试import curlifyimport requestsdata = { "wd": "hello"}url = 'http://www.baidu.com/s'response = requests.get(url=url, data=data, headers={ 'Accept': 'text/html,application/xhtml+xml',})print(curlify.to_c
2021-12-20 10:37:40
2093
原创 C语言排序函数使用(qsort)
在OJ时, 可能会使用到排序的情形. 如果是使用C语言, <stdlib.h>中已经有相关的排序函数的, 直接用就行.下面给出基本示例:#include <stdio.h>#include <stdlib.h>static inline int compare(const void* a, const void* b) { return (int)(*(int*)a) - (int)(*(int*)b);}static inline void print
2021-12-17 10:46:28
1687
原创 Mac下sed的-i选项不能为空
Mac电脑下, 使用sed -i原地修改文件内容有点坑.$ cat a.txt aaaa$ sed -i 's/a/b/g' a.txt sed: 1: "a.txt": command a expects \ followed by text$ sed -i "" 's/a/b/g' a.txt$ cat a.txt bbbb如果确实需要不备份地修改原文件, 需要加-i ""来确认.(完)...
2021-09-22 21:46:17
166
原创 VIM入门
概述本篇文章意思是让VIM新手入门, 所谓入门, 就是你会hjkl, :wq, q!了, 其他的像ciw, ddkp知道但是记不住几个,自定义快捷键也听说过, 看别人的也大概能懂.不会介绍太全, 不过各方面都会提一下.约定下文在描述按xx键即可yy这类操作时, 如无特别说明, 均指的vim默认的配置.一些概念VIM是啥?引自其官网:Vim is a highly configurable text editor built to make creating and changing an
2021-08-01 23:31:57
87
原创 linux命令之prlimit
命令介绍prlimit - get and set a process resource limits.prlimit 这个命令用来设置或者获取某进程的资源限制的.如临时设置某进程可打开的文件数,prlimit --pid=9999 --nofile=102400:102400, 这条命令表示设置pid为9999的进程的可打开的文件最大数改为102400(soft & hard).还有其他选项, 基本和ulimit一致:prlimit --help用法: prlimit [选项
2021-05-16 14:21:10
3660
原创 vim文件中文乱码问题
如下图:vim config.yaml解决方法:在当前登录终端执行: export LANG="zh_CN.UTF-8"可临时生效.将export LANG="zh_CN.UTF-8"写到 /etc/profile文件末尾, 然后source /etc/profile, 可长期生效.(完)
2021-04-26 13:46:44
131
原创 .har文件使用
背景在做web开发的过程中, 查看http请求/响应是非常常见的操作.有时可能有这样的需求: 将某次操作的请求/响应保存下来, 给别人看或者分析, 那你可能需要har文件.另外你还需要Fiddler来查看har文件内容操作截图在"Network"面板中, 将某次操作的请求保存为har文件.在Fiddler中打开查看结果展示(完)...
2021-04-07 13:26:49
6247
原创 linux shell之合并多行为一行
需求将多行转为一行.如有个文件记录了一些人名$ cat a.txt alicebobdavidtomyang希望的输出为一行(方便人类阅读就可以):alice bob david tom yang 或者 alice,bob,david,tom,yang解决方法tr命令$ cat a.txt | tr '\n' ', ' | sed 's/,$//'alice,bob,david,tom,yangxargs命令$ cat a.txt | xargs alice b
2021-04-07 13:15:04
2773
原创 Linux命令之strace
实验所用strace版本strace – version 4.8strace是linux上一个命令, 可以帮助我们观察程序做了哪些系统调用.比如shell脚本 a.sh:#!/bin/shecho hellosleep 1kill 99999我们执行strace bash a.sh, 得到输出如下:execve("/usr/bin/sh", ["sh", "a.sh"], [/* 26 vars */]) = 0brk(0)
2021-03-06 14:54:58
110
原创 Mongo之ObjectID
如:"5ecfab2e32c5618ef5ddf7b4"为某个ObjectID, 共12字节.分别为:[0,1,2,3] [4,5,6] [7,8] [9,10,11]时间戳 | 机器码 | PID | 计数器前四字节是时间戳,可以提供秒级别的唯一性。接下来三字节是所在主机的唯一标识符,通常是机器主机名的散列值。接下来两字节是产生ObjectId的进程id,确保同一台机器上并发产生的ObjectId是唯一的。前九字节保证了同一秒钟不同机器的不同进程产生的ObjectId时唯一的。最后三字节
2021-02-05 16:22:53
425
原创 Mac下好用的软件整理(不定期更新)
Kekathe macOS file archiverStore more, share with privacyhttps://www.keka.io/en/推荐理由:同事发给我一个windows下的zip包, 我用自带的解压器打开, 里边文件名全乱码. 用Keka就不会筹码.更多特性后续更新.(未完待续)...
2020-11-28 16:51:15
187
原创 redis-cli之按模式删除key
试了下, redis之del命令不支持按模式删除key, 如 del user:*这种行不通.但是可以这样(先redis-cli连上redis-server):EVAL "return redis.call('del', unpack(redis.call('keys', ARGV[1])))" 0 'user:*'原因是:del命令支持不定参数, 而上面的unpack函数就可以将数组转成不定参数的形式.就是这么简单.(完)...
2020-11-28 15:38:13
1239
原创 golang之channel学习总结
概述本篇目的是对go中的channel做一个总结。主要参考https://www.jianshu.com/p/76acce09da09环境$ uname -aLinux gl.com 5.4.50-amd64-desktop #74 SMP Mon Aug 24 20:15:37 CST 2020 x86_64 GNU/Linux$ go versiongo version go1.15.2 linux/amd64channel的用途主要用于goroutine之间通信channel的
2020-10-21 22:30:05
694
原创 golang之interface学习总结
概述本篇目的是对go中的interface做一个总结。主要参考https://qcrao91.gitbook.io/go/interface,环境说明$ uname -aLinux gl.com 5.4.50-amd64-desktop #74 SMP Mon Aug 24 20:15:37 CST 2020 x86_64 GNU/Linux$ go versiongo version go1.15.2 linux/amd64一个例子func basic() { var i inte
2020-10-21 10:45:20
416
2
原创 APUE学习笔记之:进程通信方式之: pipe
linux进程间通信之pipe示例:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include <string.h>int main() { int fd[2]; int err; pid_t pid; // 创建管道, pipefd[0]为读端, pi
2020-10-13 14:28:37
188
原创 APUE学习笔记之:进程终止的几种方式
环境$ cat /etc/os-release PRETTY_NAME="Deepin 20"NAME="Deepin"VERSION_ID="20"VERSION="20"ID=DeepinHOME_URL="https://www.deepin.org/"BUG_REPORT_URL="https://bbs.deepin.org/"进程终止的方式共8种5种正常终止,3种异常终止:其中:正常终止:从main()函数返回调用exit()函数调用_exit()或者_Exit
2020-10-06 21:14:11
333
原创 No manual entry for fopen
环境:gerrylon@gl:~$ cat /etc/os-release PRETTY_NAME="Deepin 20"NAME="Deepin"VERSION_ID="20"VERSION="20"ID=DeepinHOME_URL="https://www.deepin.org/"BUG_REPORT_URL="https://bbs.deepin.org/"刚安装的deepin 20正式版, 如果要看c语言的man手册, 需要执行:sudo apt-get install ma
2020-10-01 09:53:11
501
原创 raft协议初识
raft协议初识什么是Raft协议?对于分布式系统而言,与单机系统相比优势之一就是有更好的容错性。比如当一台机器上的磁盘损坏,数据丢失,可以从另一台机器上的磁盘恢复(分布式系统会对数据做备份),集群中某些机器宕机,整个集群还可以对外提供服务。实现的方法很自然的想到的就是备份。一个系统的工作模式:接受客户端的command,系统进行处理,将处理的结果返回给客户端。由此可见,系统里的数据可能会因为command而变化。实现备份的做法之一就是复制状态机(Repilcated State Machine,
2020-09-26 21:17:53
2254
原创 gops尝鲜
定义gops官方对其定义为:A tool to list and diagnose Go processes currently running on your system安装gerrylon@kali:~$ go get -u github.com/google/gops...省略安装细节# 如果你的PATH环境变量包含了GOBIN, 就可以直接调gops命令了gerrylon@kali:~$ gops5033 4417 gops go1.14.4 /home/gerrylon
2020-09-13 11:12:26
386
原创 正则表达式命名分组的实际应用一例
在前面的文件golang正则之命名分组中介绍了如何在go语言中使用正则命名分组。最近的工作中也用到了这个知识点, 结合实际例子, 看看如何使用它。问题描述简单来说, 就是对几种路由器的ping的结果提取。以Cisco的某型号的ping结果为例子来看下:cisco设备 ping结果成功时:Success rate is 100 percent (1000/1000), round-trip min/avg/max = 1/1/4 ms失败时Success rate is 0 percent
2020-09-12 09:16:58
404
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人