自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是要成为海贼王的男人!

让心灵和身体,都在路上。

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

原创 阿里云 nginx配置ssl证书 从安装开始

环境:centos 7.91、nginx/openssl下载 参考一. gcc 安装yum install gcc-c++二. PCRE pcre-devel 安装yum install -y pcre pcre-devel三. zlib 安装yum install -y zlib zlib-devel四. OpenSSL 安装yum install -y openssl openssl-devel官网下载nginx俩种办法:1.直接下载.tar.gz安装包,地址:https

2021-11-07 18:28:34 1776

原创 mysql进阶学习笔记(基础知识:基本架构,日志,事务,索引,锁概念)

基本架构连接器mysql -h$ip -P$port -u$user -pmysql -u root -p 密码(最好不要写出来)查询缓存之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中key 是查询的语句,value 是查询的结果PS:对于更新压力大的操作,缓存命中率会非常低可以将参数 query_cache_type 设置成 DEMAND,这样对于默认的 SQL 语句都不使用查询缓存显式指定使用查询缓存。mysql> select SQL

2021-08-16 13:29:02 206

原创 Go 面试笔记 DB 网络 系统 Go 分布式 算法

Go:理解go-routine、channel概念、用法;context内存、性能分析(pprof);如何限制并发的routine数;掌握接口的用法与设计,提升代码的设计能力;线程与协程区别多个协程可由一个或多个线程管理,协程的调度发生在其所在的线程中。可以被调度,调度策略由应用层代码定义,即可被高度自定义实现。执行效率高。 因为协程的调度切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。调度发生在应用态而非内核态。占用内存

2021-07-12 19:21:07 507 2

原创 win10清理C盘

C:\Users\81805\AppData\Local\Packages\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a\LocalCache\Roaming\Tencent\WeChatAppStore\WeChatAppStore Files\Luffy260231120\Video用spacesniffer 看了下最大的文件竟然是微信的缓存。需要定期清理https://pan.baidu.com/s/1eZYfd09S4jt32T1eguBMv

2021-03-14 16:46:02 928

原创 Oauth 第三方授权登陆 facebook google twitter instagram

因为公司项目要用到第三方授权,所以记录学习一下参考学习链接OAuth 2.0 的简单解释OAuth 2.0 的四种方式流程图(A)用户打开客户端以后,客户端要求用户给予授权。(B)用户同意给予客户端授权。(C)客户端使用上一步获得的授权,向认证服务器申请令牌。(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。(E)客户端使用令牌,向资源服务器申请获取资源。(F)资源服务器确认令牌无误,同意向客户端开放资源。注意不管哪一种授权方式,第三方应用申请令牌之前,都必须先到系统

2021-03-05 10:34:58 2400 2

原创 阿里云服务器 + 宝塔面板 笔记 mongo连接

宝塔下载下来的软件都默认安装再这里/www/server想通过外网直接访问的话,需要配置安全组的端口,开放端口比如mongo1、在阿里云配置安全组2、在宝塔 -安全,防火墙那里放行端口3、修改mongo启动配置4、就可以远程连接了...

2021-03-03 12:16:22 136

原创 docker学习笔记

启动镜像 docker run-i: 交互式操作。-t: 终端。-d: 后台启动$ docker run -it ubuntu /bin/bash 用交互式shell 启动一个ubuntu镜像root@ed09e4490c57:/# exit 退出终端$ docker run -itd --name ubuntu-test ubuntu /bin/bash 后台启动一个ubuntu镜像 $ docker run -t -i ubuntu:15.10 /bin/bash 默认

2021-03-02 16:39:19 166

原创 shell 学习笔记

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。执行一个shell文件1.作为可执行程序# test.shecho "hello world"chenxy@LAPTOP-83O53K0D:~/shell_study$ vim test.sh // 创建一个shell文件chenxy@LAPTOP-83O53K0D:~/shell_study$ lltotal 0drwxrwxrwx 1 chenx

2021-01-20 18:05:01 101

原创 zookeeper

分布式协同服务系统使用场景不能使用在:数据量较大的场景下数据结构data tree 树形结构每个节点叫 znodeznode分类持久性临时性持久顺序性临时顺序性

2020-12-03 10:07:11 117

原创 Redis学习笔记

从键值数据库到redis数据结构全局哈希表底层数据结构底层数据结构一共有 6 种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组压缩列表:类似数组,和数组不同的是,压缩列表在表头有三个字段 zlbytes、zltail 和 zllen,分别表示列表长度、列表尾的偏移量和列表中的 entry 个数;压缩列表在表尾还有一个 zlend,表示列表结束。跳表跳表在链表的基础上,增加了多级索引,通过索引位置的几个跳转,实现数据的快速定位不同操作的复杂度单元素操作是基础;

2020-09-22 20:06:33 221

原创 本地配置mongodb,配置为服务,100错误解决方案

1.下载安装后创建一个data 一个log文件夹log中创建文件mongo.log2.mongodb.conf路径注意改成自己创建的文件#数据库路径 注意此路径一定要改成你安装data文件夹的路径dbpath=G:\software\MongoDB\Server\4.2\data #日志输出文件路径 注意此路径一定要改成你的log文件的路径logpath=G:\software\MongoDB\Server\4.2\log\mongo.log #错误日志采用追加模式 log

2020-07-29 20:34:12 724

原创 Version of Delve is too old for this version of Go

参考:https://blog.csdn.net/oscarun/article/details/106712688然后必须重启下goland!!

2020-07-29 19:28:00 3697

原创 TCP/IP

比喻概念可靠的TCP与不可靠的IPIP如快递公司发送-封装接收-分用端口号根据TCP UDP 首部中的端口号,接收信息时进行分用IPifconfig 查看ip信息 netstat -an 查看原IP地址和目的IP地址Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:28002 0.0

2020-07-22 19:11:16 111

原创 Redis 特性,5种value类型和应用场景

特点内存单线程KVIO多路复用器《-》redisredis只是通过多路复用器获取到IO事件,程序自己要读写IO获取IO事件-》计算-》R/W都是串行的(因为是单线程,一次只能处理一个线程)——》IO的输出其实是有间隔的输出是有间隔的:比较memcache和redismemcache:json存在string里客户端请求数据的时候,只能请求到所有的json数据redis:会建立本地方法,存在list客户端请求的时候,只需要告诉服务器需要哪个数据index,不用操作全量单线

2020-05-23 22:14:22 949

原创 Go Mongodb redis

Mongodb术语数据库常用命令show dbs;:查看数据库> show dbs;admin 0.000GBconfig 0.000GBlocal 0.000GBtest 0.000GBuse q1mi;:切换到指定数据库,如果不存在该数据库就创建。use q1mi;:切换到指定数据库,如果不存在该数据库就创建。> use q1mi;switched to db q1midb;:显示当前所在数据库。db;:显示当前所在数据库。> db;

2020-05-21 11:47:33 247

原创 linux学习笔记

cd / 根目录(就一个)cd ~ /usr/local 文件结构在 Linux 世界里,一切皆文件。vim

2020-05-15 14:18:16 206

原创 使用docker安装redis

因为redis官方不支持windows,所以为了使用新版本的redis,只能用docker.1.下载docker参考此教程https://www.runoob.com/docker/windows-docker-install.html2.找到要下载的redis版本(这里用的6)https://hub.docker.com/_/redis?tab=tags3.随便打开个cmd运行上面复制的命令docker images3.找到6对应的image iddocker run --n

2020-05-13 16:00:37 394

原创 Go 错误处理与测试 defer-panic-recover

Go 是怎么处理普通错误的呢?通过在函数和方法中返回错误对象作为它们的唯一或最后一个返回值——如果返回 nil,则没有错误发生——并且主调(calling)函数总是应该检查收到的错误。错误处理错误接口类型type error interface { Error() string}定义错误err := errors.New("需要显示的信息")用 fmt 创建错误对象fmt.Errorf("math: square root of negative number %g", f)

2020-05-12 18:00:35 253

原创 Go 网路编程

tcpservice.go// Simple multi-thread/multi-core TCP server.package mainimport ( "flag" "fmt" "net" "syscall")const maxRead = 25func main() { flag.Parse() if flag.NArg() != 2 { panic("usage: host port") } hostAndPort := fmt.Sprintf("%s:%s

2020-05-09 18:25:09 161

原创 Go 读写数据

读取控制台输入1. fmt包:Scan 和 Sscan 开头的函数var ( firstName, lastName, s string i int f float32 input = "56.12 / 5212 / Go" format = "%f / %d / %s")func main() { fmt.Println("Please enter y...

2020-05-09 10:32:07 356

原创 Go 协程(goroutine)与通道(channel)

协程package mainimport "time"func main() { go say("Hello World") // 没有下一行,则主线程都结束了协程还没打印完说不定 time.Sleep(time.Second * 1)}func say(s string) { println(s)}2.WaitGrouppackage mainimport ...

2020-05-08 19:51:45 476

原创 Go 接口(Interfaces)与反射(reflection)

多态Go里的接口类似C++多态相同接口的变量在不同的时刻表现出不同的行为type Namer interface { Method1(param_list) return_type Method2(param_list) return_type ...}实现接口时:指针变量值变量接收者是*T 类型的方法OKERROR 存储在接口里的值没...

2020-04-27 15:00:48 261

原创 Go 包 package

archive/tar 和 /zip-compress:压缩(解压缩)文件功能。fmt-io-bufio-path/filepath-flag: fmt: 提供了格式化输入输出功能。 io: 提供了基本输入输出功能,大多数是围绕系统功能的封装。 bufio: 缓冲输入输出功能的封装。 path/filepath: 用来操作在当前系统中的目标文件名路径。 flag: 对命令行参数的操作...

2020-04-17 16:58:09 176

原创 Go 控制结构 if-else switch select for (range) 结构

if-elseif condition1 { // do something } else if condition2 { // do something else } else { // catch-all or default}if initialization; condition { // do something}测试多返回值函数的错误习惯用法// 1.er...

2020-04-16 13:52:52 305

原创 Go 方法(即 成员函数)

声明package mainimport ( "fmt" "math")type Point struct { X, Y float64}// 普通函数func Distance(p, q Point) float64 { return math.Hypot(q.X-p.X, q.Y-p.Y)}// Point类的成员函数(方法)// p 相当于 this// D...

2020-04-14 16:28:55 3157

原创 Go 函数

声明func name(parameter-list) (result-list) { body}4种方法声明拥有2个int型参数和1个int型返回值的函数func add(x int, y int) int {return x + y}func sub(x, y int) (z int) { z = x - y; return}func first(x int, _...

2020-04-13 16:51:24 223

原创 Go struct

package mainimport ( "fmt")// 一、结构体声明// 成员变量必须是大驼峰,不然外部无法访问type Employee struct { ID int // 0 -> 2 Name string // "" Address string // "" Position string // "...

2020-04-09 15:23:17 122

原创 Go 字符串string,字符rune,字节byte,数字之间的转换

数字—》string由strconv包提供这类转换功能。将一个整数转为字符串,一种方法是用fmt.Sprintf返回一个格式化的字符串;另一个方法是用strconv.Itoa(“整数到ASCII”):x := 123y := fmt.Sprintf("%d", x)fmt.Println(y, strconv.Itoa(x)) // "123 123"FormatInt和Format...

2020-04-09 14:43:57 4447

原创 Golang map(无set)

package mainimport ( "fmt" "sort")func main() { // 一、创建 // 1。make tall := make(map[string]float64) // 2. map[key]value{初始化} ages := map[string]int{ "alice":31, "amy":34, } // 3。使用下标...

2020-04-09 14:34:54 414

原创 Golang 基本数据类型,常量,数组,切片,字符串

整数int8、int16、int32、int64uint8、uint16、uint32、uint64int、uint (不同的编译器即使在相同的硬件平台上可能产生不同的大小)uintptr 无符号的整数类型。指针大小优先级递减* / % << >> & &^+ - ...

2020-04-08 15:21:38 2929

原创 Golang 程序结构

2.1 命名25个关键字break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if...

2020-04-06 16:01:20 191

原创 Golang 入门

编译过程go buildgo run变量使用声明但不初始化时,默认为默认值(int为0)var i int

2020-04-06 13:07:02 304

原创 C++11(4内存)——智能指针

shared_ptrunique_ptr特点使用引用计数。每个指针的拷贝都指向同一片资源独占性 不支持复制但可以转移关于数组在C+17之前, shared_ptr能不用于管理动态分配的数组。要管理就必须自己写删除器。可以指向数组删除器制定时,需要确认删除器的类型本章笔记参考书《深入应用C++11》学完以后发现书里的内容太浅了,附上我师傅 ...

2020-02-06 15:43:53 146

原创 C++11(3泛型编程)——type_traits,变参函数模板

type_traits,变参函数模板

2020-02-04 17:29:14 781

原创 C++11(2性能上)——右值引用(需要动态申请大量内存的类),forward,move,emplace_back,无序容器

右值引用(需要动态申请大量内存的类),forward,move,emplace_back,无序容器

2020-02-03 17:51:41 480

原创 C99标准和C知识漏洞笔记

基本数据类型stdint<cstdint>(stdint.h)类型关键字类型关键字(旧)占用字节数表示范围表示范围(十进制)uint8_tunsigned char10x00~0xFF0~255uint16_tunsigned short20x0000~0xFFFF0~65535uint32_tunsigned long...

2020-02-03 15:49:40 200

原创 C++11(1类型上)——auto,decltype,using,默认模板参数,初始化列表,for循环,function,bind,lambda,tuple

auto,decltype,using,默认模板参数,初始化列表,for循环,function,bind,lambda,tuple

2020-01-27 15:43:07 343

原创 C++赋值构造拷贝

对于初始化(构造)和赋值的概念初始化(构造):创建一个新的对象的时候赋值:修改已有对象中的值 // 初始化 赋值 int a = 5; // 初始化 int b = (a = 6); // 赋值 + 初始化 Test3 t = 6; // 构造 Test3 t2 = (t = 2); // 赋值 + 拷贝构造class Test3 { ...

2019-11-03 21:02:44 109

原创 C++ Lambda匿名函数

表达式的语法捕获列表:要把什么东西拿到函数体里去用,从外界捕获auto func1/*函数名*/ = [/*捕获列表*/][/*函数参数*/]->void/*返回值*/ { /*函数体*/};auto add =[](int a, int b)->int { return a + b;};使用1lambda传给函数指针(函数名就是函数指针)C语言中:只支持捕获列...

2019-11-03 20:46:33 221

原创 C++11新特性

右值引用,引用限定符,Lambda, auto 模板,引用,nullptr, 强类型的枚举,constexpr(代替宏),类型转换(static_cast,dynamic_cast,reinterrupt_cast,const_cast),基于范围的for循环,override,final,default,delete,nullptrNULL:#define NULL (void *)0n...

2019-11-02 23:15:03 159

空空如也

空空如也

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

TA关注的人

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