自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

五山口老法师

仰望星空,脚踏实地!

  • 博客(591)
  • 收藏
  • 关注

原创 关于mysql的“+0”操作

2021-09-27 18:08:07 3963

原创 MYSQL: DML/DDL/DCL

DDLDDL的概述DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表、视图等等,DDL对这些对象和属性的管理和定义具体表现在Create、Drop和Alter上。特别注意:DDL操作的“对象”的概念,”对象“包括对象及对象的属性,而且对象最小也比记录大个层次。以表举例:Create创建数据表,Alter可以更改该表的字段,Drop可以删除这个表,从这里我们可以看到,DDL所站的高度,他不会对具体的数据进行操

2021-07-04 15:54:59 3311

原创 mysql 安装

https://zhuanlan.zhihu.com/p/152088558首先进入到cd /home/data/目录下(没有目录自己创建一个)创建 data 目录 并进入1.下载 MySQL yum包wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm如果 wget 不存在,使用 yum 安装它yum -y install wget下载完成2. 安装MySQL源rp..

2021-04-15 19:23:21 744

原创 C++ :extern

==条款1:避免把#include指令放在extern "C"里面== 不知道在你工作过的系统里,能够看到多少类似下面的代码:{{{#ifndef __MY_HANDLE_H__#define __MY_HANDLE_H__}}}{{{#ifdef __cplusplusextern "C" {#endif}}}{{{#include <typedef.h>#include <errcode.h>}}}{{{typedef void* my_h.

2021-04-15 10:44:41 719

原创 linux gcc编译错误:statically linked applications requires at runtime the shared libraries

statically linked applications requires at runtime the shared libraries from the glibc version used for linking。此错误是因为gcc编译选项中有static相关参数,此参数禁止gcc编译时使用动态库,即使-lXXXX也不行。此时,把此static选项去掉程序即可通过编译...

2021-03-29 19:41:14 4989 3

原创 Go: 字符串比较的三种方法

golang字符串比较的三种常见方法fmt.Println("go"=="go")fmt.Println("GO"=="go")fmt.Println(strings.Compare("GO","go")) //不等 返回 -1fmt.Println(strings.Compare("go","go")) //相等返回 0fmt.Println(strings.EqualFold("GO","go"))输出truefalse-10true1,自建方法“==”,区分大小写,最..

2021-03-21 17:49:58 1424

原创 Go: init()执行顺序问题

init()函数会在包被初始化后自动执行,并且在main()函数之前执行,但是需要注意的是init()以及main()函数都是无法被显式调用的。那么init()是不是最先执行的呢?答案是否定的,首先,在他之前会进行全局变量的初始化。当我们导入其他包时,会先初始化导入的包,而初始化包时,会先加载全局变量,而后从上到下加载init()函数,当被导入的包的init()函数执行完毕后,执行调用方的全局变量加载,init()函数的顺序加载,之后执行main()函数。...

2021-03-21 17:35:08 978

原创 Go: GoRoutine是如何实现的?

Go runtime的调度器:在了解Go的运行时的scheduler之前,需要先了解为什么需要它,因为我们可能会想,OS内核不是已经有一个线程scheduler了嘛?熟悉POSIX API的人都知道,POSIX的方案在很大程度上是对Unix process进场模型的一个逻辑描述和扩展,两者有很多相似的地方。 Thread有自己的信号掩码,CPU affinity等。但是很多特征对于Go程序来说都是累赘。 尤其是context上下文切换的耗时。另一个原因是Go的垃圾回收需要所有的goroutine停止,使

2021-03-21 01:00:19 217

原创 Shell 变量的作用域

Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于所在的班级(对应于作用域)不同,所以不会造成混乱。但是如果同一个班级中有两个叫小明的同学,就必须用类似于“大小明”、“小小明”这样的命名来区分他们。Shell 变量的作用域可以分为三种:有的变量只能在函数内部使用,这叫做局部变量(local variable); 有的

2021-02-04 12:10:42 1647

原创 Makefile:条件编译

在源代码里面如果这样是定义的:#ifdef MACRONAME//可选代码#endif那在makefile里面gcc -D MACRONAME=MACRODEF或者gcc -D MACRONAME这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。对于GCC编译器,有如下选项: -D macro=string,等价于在头文件中定义:#define macro string。例如:-D TRUE=true,等价于:#...

2021-01-27 14:24:19 921

原创 指定结构体字节对齐方式

指定结构体字节对齐方式#pragmapack(push,1)typedefstruct{intb;chara;}struct_t1;#pragmapack(pop)

2020-12-31 11:01:42 276

原创 docker相关

提交新的镜像tagdocker commit -m "comment" IMAGENAME IMAGEID:TAG镜像重命名:docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)镜像删除:docker rmi REPOSITORY:TAG(仓库:标签)必要时加上 -f 强制删除镜像退出:1.后台不退出 ctl+p+q2.后台退出 exit...

2020-11-12 23:03:28 205

原创 链接静态库的顺序问题

在链接静态库时,如果多个静态库之间存在依赖关系,则有依赖关系的静态库之间存在顺序问题,这个在使用静态库时,需要注意,否则会报符号找不到问题,举例:libb.a依赖于是liba.a,而可执行文件test只直接依赖于libb.a,则链接选项应当为:-b -a,而不是-a -b,否则会报liba.a中的某些符号找不到.gcc -c a.car cr liba.a a.ogcc -c b.car cr libb.a b.o # 虽然libb.a使用到了liba.o中的一些函数,但并不会.

2020-11-12 17:27:51 658

原创 libtool安装

1,下载安装m4wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz \&& tar -xzvf m4-1.4.13.tar.gz \&& cd m4-1.4.13 \&& ./configure –prefix=/usr/localmake && make install2,下载安装autoconfwgethttp://mirrors.kernel.org/g...

2020-11-12 16:11:25 2868

原创 shell:后台运行&amp;,日志重定向输出,nohup,grep命令

后台运行命令在命令行加上&,表示进程到后台执行,如 cmd &日志输出重定向命令,如 cmp > out.log &Linux默认定义两个变量:1和2;1表示标准输出2表示错误输出如 cmd 1>info.log 2>error.log &其中 cmp > out.log & 与 cmp 1> out.log & 是一样的如果想忽略某个输入,则输出到/dev/null设备即可如 cmd 1>info.lo

2020-11-10 19:33:03 849

原创 GO: go.mod go.sum

如果你还在使用 GOPATH 模式来开发Golang程序,那么你可以参考本文来告别 GOPATH,并带给你一个方便的包管理工具。关于 go mod 的说明和简单使用,可以参考:1、Go1.1.1新功能module的介绍及使用2、Introduction to Go Modules3、Go 1.11 Modules 官方说明文档使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,比如:新建一个名为 wserver 的项目,项目

2020-11-02 01:09:35 14866 2

原创 MySQL: load data infile 需要注意的点

load data infile 批量将文本导入到mysql的表中。主要是为了加快导入记录的速度。---给个例子:1.文本如下 t0.txt:"我爱你","20","相貌平常,经常耍流氓!哈哈""李奎","21","相貌平常,经常耍流氓!哈哈""王二米","20","相貌平常,经常耍流氓!哈哈""老三","24","很强""老四","34","XXXXX""老五","52","***%*¥*¥*¥*¥""小猫","45","中间省略。。。""小狗","12","就会叫""小.

2020-10-12 00:25:00 336

原创 Git: Updates were rejected because the tip of your current branch is behind

$ git push -u origin masterTo [email protected]:******/Demo.git! [rejected] master -> master (non-fast-forward)error: failed to push some refs to '[email protected]:******/Demo.git'hint: Updates were rejected because the tip of your current branch is be..

2020-09-16 22:38:52 293

原创 C++11中Thread类简单使用的例子

代码如下:#include <iostream>#include <thread>#include <chrono>#include <future>#include <cmath> #include <vector>#include <cstdlib>using namespace std;void helloworld() { cout << "hello world" <&l

2020-07-30 15:52:08 491

原创 Thread中,join()方法

std::thread是c++11新引入的线程标准库,通过其可以方便的编写与平台无关的多线程程序,虽然对比针对平台来定制化多线程库会使性能达到最大,但是会丧失了可移植性,这样对比其他的高级语言,可谓是一个不足。终于在c++11承认多线程的标准,可谓可喜可贺!!!在使用std::thread的时候,对创建的线程有两种操作:等待/分离,也就是join/detach操作。join()操作是在std::thread t(func)后“某个”合适的地方调用,其作用是回收对应创建的线程的资源,避免造成资源的泄露。d

2020-07-30 14:17:40 672

原创 Shell脚本读取Redis键值对

给出一个极简的例子:#!/bin/bashkey='aaaaa'value=$(redis-cli -h 127.0.0.1 -p 6379 get ${key})echo ${value}其中第二行 redis-cli连接到Redis服务器之后执行get返回的是key对应的value值。使用 变量=$(命令)或者 变量=`命令` 将Shell输出值赋值给变量。然后可以使用value来处理逻辑注意的是,变量与等于号以及命令之间不要出现多余的空格。...

2020-07-29 01:25:16 1990 1

原创 Makefile: -I(大写i)、-L、-l

我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时:-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include-->/usr/incl

2020-07-26 22:25:47 839

原创 Makefile:自动化变量 $@,$^,$<,$?

Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:$@ 表示目标文件$^ 表示所有的依赖文件$< 表示第一个依赖文件如果我们使用上面三个变量,那么我们可以简化我们的Makefile文件为:# 这是简化后的Makefilemain:main.o mytool1.o mytool2.ogcc -o $@ $^main.o:main.c mytool1.h mytool2.hgcc -c $<mytool1.o:mytool1.c

2020-07-24 17:06:35 992 1

原创 Makefile 中:= ?= += =的区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endififeq ($(OPT),add) VRE += “Kelly!”endififeq ($(OPT),recov.

2020-07-24 15:03:18 200

原创 epoll深入解读

首先说一下传统的I/O多路复用select和poll,对比一下和epoll之间的区别:举个例子:假如有100万用户同时与一个进程保持TCP连接,而每一时刻只有几十或者几百个tcp连接是活跃的(即能接收到TCP包),那么在每一时刻进程只需要处理这100万连接中的有一小部分。select和poll这样处理的:在某一时刻,进程收集所有的连接,其实这100万连接中大部分是没有事件发生的。因此,如果每次收集事件时,都把这100万连接的套接字传给操作系统(这首先就是用户态内存到内核内存的大量复制),而由操...

2020-07-06 16:59:10 297

原创 Android: RecyclerView.ViewHolder、Adapter

1.简介 用户滑动屏幕切换视图时,上一个视图会回收利用,RecyclerView所做的就是回收再利用,循环往复。 ViewHolder  ViewHolder的主要任务:容纳View视图。 Adapter  Adapter从模型层获取数据,然后提供给RecyclerView显示,是沟通的桥梁。 Adapter主要的任务是:创建ViewHolder和将模型层的数据绑定到ViewHolder上。 RecyclerView与Adapter交互流程 首先..

2020-06-01 01:25:52 1470

原创 Android: Bundle机制

Bundle在Android开发中十分常见,常用于以下场合:1.Activity状态数据的保存与恢复涉及到的两个回调:void onSaveInstanceState (Bundle outState)、void onCreate (Bundle savedInstanceState)2.Fragment的setArguments方法:void setArguments (Bundle args)3.消息机制中的Message的setData方法:void setData (Bundle data)

2020-05-31 23:46:49 528

原创 服务器开发 行业术语

系统开发 1. 高内聚/低耦合高内聚指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。模块的内聚反映模块内部联系的紧密程度。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。一个完整的系统,模块与模块之间,尽可能的使其独立存在。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越...

2020-03-27 23:45:10 407

原创 Nginx 反向代理及 Cookie 相关问题

最近一个项目,遇到了Nginx反向代理和Cookie的问题,遇到的问题很杂,经过一周多逐步摸索,总算有个解决方案了,做个记号,主要是记录下遇到问题的过程,以便出现问题时备查。【背景】客户原有的使用Domino开发的Web应用系统,需要部分数据通过手机端展示; 原Domino系统只能通过内网访问,没有域名,内网的机器都需要修改hosts来解决域名问题;(至于为什么没有通过内网DNS进行域名解析...

2020-02-29 02:18:33 2146

原创 同域名下不同端口cookie问题

假如同域名 不同端口部署两个服务:服务A 服务B服务A产生的cookie在访问B时会携带,反之同理。为了避免两个服务cookie覆盖,最好对cookie的键取不同的名称加以区分。相同域名不同端口的两个应用,cookie名字、路径都相同的情况下,后面的cookie会覆盖前面的cookie吗?如果浏览器访问的服务是ip或localhost的话,会覆盖;如果浏览器访问的是域名(在...

2020-02-29 01:12:01 4373

原创 AutoBench的使用分析

本实验中,我将使用AutoBench来进行Web服务端的性能测试,借助于Httperf来实现集群测试。本文接着上篇文章中的测试URL来进行分析AutoBench的测试过程。首先我们创建测试的命令行如下:autobench --single_host --host1=127.0.0.1 --port1=8081 --uri1=/getServerIp --quiet --low_rate...

2019-11-16 16:33:42 613

原创 AutoBench+Httperf的安装、测试

首先安装Httperf。主要是Httperf网路上给出的url均无法访问,因此在GitHub上找的源码工程,进行安装。接下来介绍安装步骤,从Github下载下来的httperf包是zip。unziphttperf-master.zipcd httperf-masterautoreconf -i (可能要首先安装一下autoconf sudo apt-get insta...

2019-11-15 18:51:41 1070 1

原创 Python操作Memcached

 Memcached是一个高性能的分布式内存对象缓存系统,用于动态WEB应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态,数据库网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon)是用C写的,但是客户端可以用任何语言来编程,并通过memcached协议与守护进程通信。Memcached安装服务端安装m...

2019-11-13 15:52:49 254

原创 常见数据归一化的几种方法

常见的数据归一化方法min-max标准化(Min-max normalization)/0-1标准化(0-1 normalization)也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。def Normalization(x): return [(float(i)-min(x))/f...

2019-11-12 23:32:14 4774

原创 计算标准差

Python:import numpy as nparr = [1,2,3,4,5,6]#求均值arr_mean = np.mean(arr)#求方差arr_var = np.var(arr)#求标准差arr_std = np.std(arr,ddof=1)print("平均值为:%f" % arr_mean)print("方差为:%f" % arr_var)print(...

2019-11-07 16:07:53 749

原创 Mycat:压测Mycat及结果分析

前言Mycat是业内知名mysql数据库中间件,其功能在各种mysql中间件中是比较丰富的.而mycat相关组件由java语言编写,部署方便.他的功能有:不透明代理,读写分离,负载均衡,数据分片等.而且因为其底层连接方式是用java的jdbc组件来连接数据库的,所以理论上是支持sql server,oracle,pgsql的,但是功能上主要集中在mysql上.优点:部署简单,功能强大...

2019-10-25 21:32:53 1323

原创 Nginx:几种负载均衡调度策略配置

一、Nginx负载均衡算法1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。2、weight(轮询权值)weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。...

2019-10-24 20:57:46 657

原创 redis:RDM连接阿里云redis服务器

先给结论:这几天踩了一个坑,redis在启动的时候,如果你对redis.conf进行了修改,则需要在重启redis时带上配置文件,否则redis不会对修改的redis生效,真是个坑货,就这里被坑了,以为会主动去加载配置。redis默认在没有设置密码且bind在127.0.0.1时开启了保护模式。因此需要手动修改配置文件,将bind 127.0.0.1 改为 #bind 12...

2019-10-19 11:31:00 1614 2

原创 华为:N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求

N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求华为面试被问手撕这道题。输入分值:【1,2,3】输出:5解析:3+1+1 = 5。但是要考虑到 输入分值:【3,4,3】输出:4解析:3+1。4只需要算一次就行。解答思路:new两个数组,两趟遍历,左向右遍历,再右向左遍历,分别比较,最后比较两个数...

2019-10-14 12:47:19 448 1

原创 PV、UV、VV

PV即Page View,网站浏览量指页面的浏览次数,用于衡量网站用户访问的网页数量。用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计。一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的PV。具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某个网页多少次。PV是指...

2019-10-10 17:11:10 591

空空如也

空空如也

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

TA关注的人

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