- 博客(48)
- 资源 (3)
- 收藏
- 关注
原创 REDIS常用命令
获取最大连接客户端数量redis> config get maxclients获取已连接客户端信息redis> client list
2022-04-27 11:16:20 882
原创 gradle
自定义task# build.gradle中加入task customtask { System.out.println(System.getenv('BUILD_NUMBER'));}并执行task: $ gradle customtask执行task并传递环境变量$ BUILD_NUMBER=2 gradle bustomtask打印项目所有依赖gradle dependencies #指定打印某个模块的依赖gradle dependencies --d.
2022-01-18 15:27:42 524
原创 CPU的按位异或
异或操作可以理解为一个半加法器,加法器是根据两个输入获取一个输出,输出分为结果位和进位:结果位运算规则为:相同输出0,不同输出1,这也是异或的运算规律。进位运算规则就是按位与:两个都为1时才为1,其他为0.异或的使用场景:1、交换两个变量,不需要临时变量a = a ^ b;b = b ^ a;a = a ^ b;2、快速判断两个数字是否相等(a ^ b) == 03、加密解密,一个数a异或密钥b,再用结果c异或密钥b就又得到ac = a ^ bd = c ^ b此时 a == d
2021-11-10 11:19:33 501
原创 二叉树笔记
二叉树定义:所有节点的度最多为2,即所有节点最多有两个子节点,且两个子节点有左右顺序。二叉树高度和深度:根节点为第一层,总共有多少层就是高度或深度。满二叉树:所有二叉树中节点最多的二叉树,节点数=2^n-1,n为二叉树的高度。完全二叉树:节点表号从上到下从左到右,依次编号,编号和满二叉树一一对应,满二叉树是完全二叉树,但是完全二叉树不一定是满二叉树。二叉树遍历:(都是从根节点出发,从上到下,从左到右)前序遍历:按上面顺序,访问到节点就输出中序遍历:按上面顺序,第二次方案就输出后续遍历:按上面
2021-10-29 15:17:54 88
原创 JVM常用命令
查看JVM中各区使用情况和gc情况命令:jstat -gc ${PID}查看进程的栈信息jstack PID/proc/{PID}/proc/PID/proc/{PID}/tasks目录存放了进程下有多少个子进程(线程)
2021-09-18 09:48:32 78
原创 Linux命令中的箭头符号总结
> 左边的内容重定向到右边的文件 会覆盖右边的文件内容 示例1: echo hello > test.txt # 输出hello到标准输出并重定向到test.txt文件 # 如果test.txt不存在会自动创建 如果存在会覆盖内容 示例2: ls test.txt 2>/dev/null #查看test.txt文件明细,并将标准错误输出到黑洞(不输出错误) #注意文件描述符必须和>号连在一起,中间没空格 >.
2021-08-26 15:29:07 3327 1
原创 Docker常用命令
``docker image list #查看所有镜像列表docker container list #查看所有容器docker ps #查看所有运行中的容器docker ps -a #查看所有运行中和未运行的容器docker rm containerId #根据容器ID删除容器docker rmi imageId #根据镜像ID删除镜像docker stop conrainerId #停止正在运行的容器docker start conarinerId #启动停止中的容器docker k
2021-08-17 11:33:44 138
原创 使用Docker创建定制化的Linux(ubuntu)镜像
创建一个目录dockerfiles 存放docker镜像的目录在该目录创建一个ubuntu16.04的目录用于存放镜像配置文件在ubuntu16.04目录下创建Dockerfile文件,该文件是镜像配置文件,必须用这个名字。在镜像配置文件Dockerfile文件中输入# 告诉docker我们需要一个ubuntu的镜像FROM ubuntu:16.04#告诉Docker默认的启动命令CMD ["sh"]接着进入Dockerfile所在目录,输入命令docker buil
2021-05-21 10:29:58 544
原创 debian下安装Docker
安装Docker卸载旧版本,如果之前有装过旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:$ sudo apt-get remove docker \docker-engine \docker.io由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。$ sudo apt-get update$ sudo apt-get instal...
2021-05-21 10:22:13 999
原创 Elastic Search工作流程(持续更新中)
ES 概念:index 索引 类似关系型数据库中的 库type 类别 用于存放某一类文档 ,大部分字段相同 ,类似关系型数据库中的 表document 文档 类似关系型数据库中的 记录field 字段 类似关系型数据库中表的 列term 词条token 词元analyzer 分析器tokenizer 分词器filter 过滤器工作流程:es文档->交给tokenizer分词器分析 可能拆成多个token词元->交给filter过滤,如转小写 最..
2021-05-20 17:50:17 371
原创 es搜索API字段解析(持续更新)
GET /index_name/type_name/_search{"query":{ //查询必须有该属性 "bool":{//bool查询 联合查询 bool中所有字段指定的条件必须满足 bool字段中条件是与的关系 "must|must_not":[//must:必须 must中所有元素必须为true,must_not必须不 所有元素必须为false must和must_not中元素是与的关系,必须都为true才能返回true 以下等价于 field.
2021-05-08 16:21:04 303
原创 springboot项目集成rabiitmq无法创建队列和交换机故障小记
问题描述:springboot项目集成rabbitmq,但是启动springboot后,服务正常启动后,控制台不停报错,提示连接rabbitmq被拒绝,检查rabbitmq服务和用户权限都没有问题,截图如下:application.yml:pom.xml:启动报错信息:错误大概意思:在声明一个交换机时,连接被重置,具体的重置原因没有说明,此时想到用wireshark抓取amqp包可找出具体原因,wiresshark抓包截图:大概流程:客户端...
2021-04-22 17:08:44 3639
原创 Linux下搭建Hugo博客并推送到github个人博客
前言:在debian上搭建hugo个人博客,并将博客推送到github博客上。(需要预先安装好git,并设置email和username)1、安装Hugo:$ sudo apt install hugo2、使用下面命令创建一个博客$ hugo new site myblog执行完后会在用户家目录生成一个myblog目录,目录树如下:theme下是存放主题文件,data下面存放博客文章,layouts下面存放布局文件,cd到博客目录下,下面操作都是在myblog目录下操作3
2021-04-22 10:11:45 746
原创 linux下WPS并安装字体
操作步骤1、下载缺失字体 链接:https://pan.baidu.com/s/1ZUbtQ96b8RVbH0LrXb_GlQ密码: nsr42、解压字体unzip wps-font-symbols.zip3、移动字体到文件夹sudo cp -f wps-font-symbols /usr/share/fonts4、修改字体权限cd /usr/share/fontssudo chmod 755 wps-font-symbolscd /usr/share/font..
2021-04-21 15:42:50 2258
原创 Debian系安装rabbitmq
1、安装erlang由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlangsudo apt-get install erlang-nox2、安装Rabbitmq更新源sudo apt-get update安装sudo apt-get install rabbitmq-server安装成功后 ,默认端口是56723、添加admin,并赋予administrator权限添加admin用户,密码设置为admin。sudo ra
2021-04-20 18:30:03 409
原创 Debian 修改系统语言
1、先安装对应的语言包装$ sudo dpkg-reconfigure locales输入上面命令后,会进入语言包选择界面,从列表中选择需要安装的语言包,空格健选择,可以选择多个,t选择好后,使用TAB键切换到OK进入下一步在下一步中,选择系统的语言,选择对应的语言后需要重启系统$ sudo reboot...
2021-04-20 17:21:47 2302
原创 rabbmitmq延时队列的多种实现
前言:rabbitmq的工作方式:建立一个交换机,并设置交换机名称,再创建一个消息队列,并设置名称,绑定交换机器和消息队列并设置routingkey,当客户端发送消息队列到交换机时,交换机根据消息的routingkey和前面的绑定关系路由到对应的消息队列。rabbitmq有三种延时队列实现方式,各有利弊,下面一一介绍:第一种方式:创建具有超时功能且绑定死信交换机的消息队列,步骤如下1、创建一个交换机和消息队列,并设置消息队列的x-message-ttl:队列消息的超时时间,该参数值是一个毫秒值,
2021-04-12 20:54:45 809
原创 mysql 常用命令
#登录mysql服务mysql -h127.0.0.1 -uroot -p#执行sql并将结果保存到本地文件mysql -h127.0.0.1 -uuser -ppasswd dbname -e "select * from table;" >data.txt
2021-04-09 15:44:16 68
原创 redis存储数据结构及用法大全
本地安装好redis服务和客户端之后,使用如下命令连接redis服务器:redis-cli -h 127.0.0.1 -p 6379一、value值为字符串的相关操作:#设置key:value,如果key值不存在则创建,否则覆盖set keyvalue#如果键key的键值对存在,则覆盖新值为value,如果不存在,不操作,原子操作 等价于 setex key valueset key value XX#如果key不存在,则创建一个key:value的键值对,如果存在不操作.
2021-04-08 15:53:40 280
原创 java同步锁的实现原理简单总结
ps:纯属个人简单总结,有不当之处或不合事实指出请指出,谢谢!java中同步锁使用synchronized实现,不管是作用在方法上还是代码快上,作用在方法上分静态方法和实例方法,作用在代码快上需要在后面添加锁的对象,实现原理是在作用对象的锁上添加拥有者,java每个对象头上可能包含monitor监视器锁,而锁上面标记了锁的拥有者,即一个线程,当线程进入同步块中时,检查锁对象中的owner是否已经有其他线程,如果是那么线程进入阻塞状态,进入等待队列,如果不是则修改对象锁的拥有者为当前线程,当线程退出同步块
2021-04-07 18:00:16 690
原创 mysql数据库重装后nextcloud无法进入问题解决总结
之前在树霉派4B上安装了一个nextcloud做NAS,当时树霉派的sd卡是16G的,后来发现16G内存有点小,买了个63GSD卡,然后想通过dd命令将16GSD卡上的系统复制到32GSD上,但是64GSD卡格式是exFAT格式的,树霉派系统只能识别fat\ext3\ext4系统的,需要下载相关工具,然后再使用dd命令复制硬盘:sudo apt install fuse-exfat exfat-utilssudo dd bs=4M if=/dev/mmcblk0 of=/dev/sdaif中填入你
2021-03-27 21:25:43 3280
原创 网络通信过程 小结(图解)
上图说明:蓝色大框框和红色大框框代表两个不同子网,框框上面是子网主机地址和掩码,蓝色框框内和红色大框框内都有三个主机,红蓝子网中间经过三个路由器:蓝色、黄色、红色,每个路由器都有两个网口,网口地址图片有标记。示例:1、假设蓝色子网中的192.168.1.2需要和192.168.1.3通信,根据TCP/IP协议规定,网络数据需要逐层由上而下封包发送,封装过程:应用层头部+数据->传输层首部+(应用层头部+数据)->网络层头部+(传输层首部+(应用层头部+数据))->数...
2021-03-26 14:37:27 4319 1
原创 linux修改文件拥有者和读写模式
修改文件拥有者:sudo chown goupname:username file修改目录拥有者sudo chown -R groupname:username dir/修改文件读写权限:4-r 2-w 1-x777 :7代表4+2+1 读写可执行 ,第一个7是文件拥有者权限,第二个7是本组其他用户权限,第三个7是其他组用函数权限sudo chmod 777 filesudo chmod -R 777 file...
2021-03-24 10:27:40 236
原创 Go 程序导包报错问题处理
当执行一个包含main方法的go程序文件 go build main.go时报错:build command-line-arguments: cannot load awesomeProject/_package: malformed module path "awesomeProject/_package": missing dot in first path element这是由于go环境中的GO111MODULE="on" ,表示go读取包的路径在$GOPATH/mod目录下查找,需要使用下
2021-03-23 18:02:59 5600
原创 Go学习笔记
go变量命名规范:字母、下划线、数字组合,且不能以数字开头,大写字母开头的元素,如函数,变量,常量,结构体会被导出当前包,小写字母开头则仅在本包可见 go包名命名规范建议包名和当前目录名相同,小写字母。 包中第一个元素必须是包声明,其次是导入包声明,如:package my_packageimport( "other_package1""other_package2")声明变量可同时声明多个,如var(a intb string)可同时导入多个包,如import("
2021-03-23 17:56:14 57
原创 linux之sed
sample:#在file文件的第二行后面添加一行hello和一行worldsed '2a hello\world' file#在第三行前面添加一行hellosed '3i hello' file#删除第五行到最后一行sed '5,$d' file#删除file文件的第二行并更新到file文件sed -i '2d' file#替换file文件的第二行到第五行为一行hello和一行worldsed '2,5c hello\world' file...
2021-03-23 11:45:22 184 1
原创 mysql服务无法启动故障小记
问题背景:当在ubuntu中使用systemctl status mysqld.service时,输出如下(或类似):● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2016-11-
2021-03-23 09:08:06 3702 2
原创 Docker 安装 Zabbix
注意:在执行下列命令行遇到docker被容器使用的情况时,使用命令先删除容器: docker rm 容器id 即可第一步:docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" -d mysql --character-set-server=utf8 --collation-se
2020-12-11 15:01:24 174
原创 ThreadLocal实现方式剖析
ThreadLocal是用于提供支持线程间变量隔离,实现线程安全,多线程下变量同步访问有两种方式:1是通过Synchronized同步锁,多线程以排队的形式访问变量,保证线程安全,2是通过ThreadLocal实现线程间变量有多个副本,第一种方式是牺牲时间换安全,第二种是牺牲空间换安全,两种方式各有利弊。ThrealdLocal的实现原理大致介绍下:jdk中Thread类下有一个ThreadLocalMap类型的成员变量,而ThreaLocalMap类属于ThrealLocal类的一个静态内部类,Thr
2020-11-13 14:35:18 213 1
原创 接入微信OAuth2.0登录流程
1. 到微信开放平台 ,先注册一个开发者帐号,再申请一个网页应用,填入公司网站信息,主要包括网站域名和回调地址,如 网站域名:www.baidu.com回调地址:http://www.baidu.com/login.htm2. 审核通过后,可以访问这个链接获取到微信登录的二维码:https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.
2020-06-13 17:22:20 1839
原创 网络协议之TCP
TCP:传输控制协议,位于OSI七层网络模型中的第四层传输层,为上层(应用层)提供端到端的服务,控制报文安全可靠地交给应用层,很多著名的应用层都是基于TCP协议的,比如:HTTP、SMTP、POP、TELNET、SSH。TCP面向连接,在传输数据之前需要一条建立可靠的虚电路(逻辑电路),建立连接后数据开始传输,连接建立过程是三次握手,下面列出三次握手过程:clientserverSYN(SYN_SENT)SYN ACKACK(ESTABLISHED)clientserver服务器打开端口监听,此时
2020-06-03 18:07:20 173
原创 Linux之定时器cron
cron是linux的定时器程序,使用linux可以设置用户定时任务,cron表达式执行 设置步骤如下:一、配置任务crontab -e #编辑用户的定时任务文件:/var/spool/cron/crontabs/$(user)配置当前用户的定时任务示例:1/* * * * * echo 'hello' && echo $(uname -a) #每分钟执行shell命令 cront格式: 分 时 日 月 周 shell命令二、保存修改,默认使用nano编辑器编辑,使用ct
2020-06-03 17:43:42 273
原创 linux(ubuntu)下安装dosbox教程
sudo apt install -y dosbox下载工具包(我的资源里面有,可以下载),下载到某个目录 如:/test使用命令 vi “$(dosbox -printconf)” 编辑dosbox配置文件在文件末尾添加下面l两行代码,自动挂载刚刚下载文件的目录mount d /testd:保存文件,并运行 dosbox 命令启动。dosbox...
2020-06-03 17:34:23 1494
原创 python之yield
根据代码示例解释:def test(num): idx = 1 while idx < num: yield idx idx = idx + 1func = test(5) # 方法不会执行,在内存中会生成一个generator类对象 func是这个对象的引用num = next(func) #调用next方法会出发方法执行,执行到...
2019-11-06 15:01:45 158
原创 python爬虫框架scrapy
一、使用pip3下载scrapy框架,安装过程中会自动下载相关依赖pip3 install scracpy二、下载完成后,创建软链接到/bin中ln -s /usr/local/scrapy /bin/scrapy三、创建项目目录 demo并使用scrapy初始化项目,进入到项目demo下。mkdir democd demoscrapy startproject d...
2019-11-05 16:43:37 377
原创 shell命令之awk
awk:对目标文件每行进行分割处理,$1只每行分割后第一个变量,以此类推$n...示例:ls | awk -F'.log.' '{print "mv "$1".log."$2 " "$2"."$1".log"}'|sh这个命令是由管道符链接的三个命令所组成的。1、列出当前工作目录所有文件和文件夹名称a.log.01 b.log.022、将第一步输出的字符串进行分割,,取出变量...
2019-10-25 10:57:05 228
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人