自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (7)
  • 问答 (2)
  • 收藏
  • 关注

原创 go binary 实现简单的序列化和反序列化

先看一个简单的例子,在计算机中是有大端序和小端序之分的,大端序就是大家正常的阅读习惯,比如 "今天你吃了吗",而小端序是计算机喜欢的阅读习惯比如刚才那句话,计算机用小端序就是 "吗了吃你天今"。小端序的好处就是计算机处理的更快,当然坏处就是人看起来难受,所以计算机底层的核心逻辑以外,大部分还是选择了大端序,毕竟这样排bug更方便一些。一,go的大端序和小端序。二,序列化与反序列化实现。

2022-12-08 23:59:45 697

原创 Go cobra 库学习

其实简单的来说,cobra就是一个自定义命令工具,我们经常使用一些命令来构建项目,但是这些命令都是go自带的,你想写自己的命令就可以使用cobra库来试一试。二,简单的cobra项目先构建一个简单的cobra命令,以此来熟悉cobra是怎么用的创建一个cmd目录,在目录里创建一个myOrder.go,实际上这个名字可以随便命名,一般来说,你创建的啥命令就写啥名字,这不是为了好找么。然后在main.go 入口里运行Execute即可main.go ↓cobraTest是这个项目的名字,c

2022-12-05 14:16:59 2309

原创 go 实现数字字母交替打印并优雅关闭channel

这个效果其实有很多种写法,现在选取一个简单的写法,通常的写法是让两个协程交替打印,用chan来阻塞通知,但是由于大部分的demo都没有考虑优雅退出的问题,这次的demo添加了一个stopCha来优雅退出并close通道。

2022-11-19 23:20:08 831

原创 go分布式锁的一个简单实现

第二,A服务按理说只能去掉自己的服务加上的锁,如果不止是有AB两个服务,有更多的服务,那么A如果出现处理较慢,锁超时后,B服务抢到锁,A又处理完成所有的事释放了锁,那其实是释放掉了B的锁。也就是说,释放锁的时候也必须判断是否是自己的锁。第一,当A服务(本案例中其实是协程模拟的)拿到锁之后,处理超时了,锁还没有释放,就已经过期,过期后B服务就抢到了锁,此时AB均认为自己拿到了锁。但是这种锁只能用于你自己的本地服务,一旦出现多服务,比如分布式,微服务,这样的场景,这个锁就没啥用了,这就需要分布式锁。

2022-09-15 19:09:32 725

原创 Go+redis实现简单的抽奖系统

redis的集合是 无序、不重复的集合,如果一个抽奖系统只需要简单的从一堆数据里抽出一部分,那么redis就可以简单的实现。主要用到了SPOP(随机移除并返回集合中一个或多个元素) 和 SRANDMEMBER(随机返回集合中一个或多个元素)

2022-09-11 16:59:19 500

原创 go实现N个协程交替顺序打印自然数的详细解释

如果某一个协程发现打印的数字超过了设定的数字,这时候就会通知下一个协程close信号,然后下一个协程再通知下下个协程close,最后返回给主协程,类似计算机网络中的 环状网络。这里主要是形成一个闭环,每一个协程要打印的时机和数字是来自上一个协程的控制,最终有主协程(类似主持人角色)把最后一个协程的信号转发给第一个协程,从而形成闭环。如果我们每一个协程都生成一个管道,通知下一个协程什么时候能打印,打印哪个数字,这个问题就非常好解了。nextChannel(第一个协程生成)放入firstChannel。

2022-09-04 12:00:28 1149

原创 一个简单的go使用grpc的案例

今日学习grpc通信,做一个简单的小demo来验证效果。

2022-09-03 00:27:48 636

原创 windows下安装protocol buffer

在安装grpc的时候,需要安装一个工具 protocol buffer,大多数教程给出的是linux下的安装,在此记录一下windows下的安装Protocol Buffers (Protobuf) 是一个免费的Google研发的开源跨平台库,用于序列化结构数据的一个协议。它在服务进行网络通信或存储数据时很有用,典型应用之一就是微服务。...

2022-08-31 00:42:07 716

转载 mysql 证明为什么用limit时,offset很大会影响性能

id为自增主键,val为非唯一索引。时间相差很明显。为什么会出现上面的结果?我们看一下类似于下面这张图:像上面这样,需要查询300005次索引节点,查询300005次聚簇索引的数据,最后再将结果过滤掉前300000条,取出最后5条。MySQL耗费了大量随机I/O在查询聚簇索引的数据上,而有300000次随机I/O查询到的数据是不会出现在结果集当中的。肯定会有人问:既然一开始是利用索引的,为什么不先沿着索引叶子节点查询到最后需要的5个节点,然后再去聚簇索引中查询实际数据。

2022-08-22 15:42:55 270

原创 数据结构c语言版——程序1-3选择排序

数据结构C语言版里面的练习题

2022-06-27 12:20:10 115

原创 php内核学习笔记(一,运行方式)

一、用户代码的执行当用户代码输入给PHP内核去执行的时候,PHP内核会对PHP代码进行词法分析和语法分析,词法分析是把PHP代码分割成一个个的“单元”(TOKEN),语法分析则将这些“单元”转化为Zend Engine可执行的操作。然后PHP内部的Zend Engine对这些操作进行顺次的执行。Zend Engine是PHP内核的核心部分,负责最终操作的执行和结果的返回,可以理解成为PHP内核中的“发动机”。于是PHP代码的执行过程可以简单描述为下图:二、SAPI接口Server App

2022-05-14 17:27:05 557

转载 FastCGI协议

FastCGI 简介FastCGI是Web服务器和处理程序之间通信的一种协议,是CGI的一种改进方案,FastCGI像是一个常驻(long-lived)型的CGI,它可以一直执行,在请求到达时不会花费时间去fork一个进程来处理(这是CGI最为人诟病的fork-and-execute模式)。正是因为他只是一个通信协议,它还支持分布式的运算,所以 FastCGI 程序可以在网站服务器以外的主机上执行,并且可以接受来自其它网站服务器的请求。FastCGI 是与语言无关的、可伸缩架构的 CGI 开放扩展,

2022-05-14 17:11:22 1326

原创 win10下docker安装rocketmq 4.9.2

简单步骤在win10下使用docker运行rocketmq集群

2022-03-11 23:05:30 4089 3

原创 begoo处理json

begoo(1.12版本)没有现成的json处理方式,需要自己手动处理1,ctx获取requestBody里面的内容2,json.Unmarshal解析jsonpackage mainimport ( "encoding/json" "fmt" "github.com/astaxie/beego")type TaskController struct { beego.Controller}func (c *TaskController) Json() { // 读取re

2022-02-22 10:25:23 151

原创 windows10下GO的beego之bee 工具安装

安装beego的bee工具需要先配置环境变量第一步:配置用户环境变量 GOPATH,GOROOT,GOBIN如果不清楚自己的go安装在哪里,可以在cmd中使用 go env来查看GOROOT就是go的安装路径GOPATH:go install/go get和 go的工具等会用到GOPATH环境变量.GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径 (其实也是你的工作目录, 你可以在src下创建你自己的go源文件, 然后开始工作)。第二步:配置

2022-02-10 18:49:30 3127

原创 golang猜数字 100以内随机数

func main(){ guessNum(58)}/**猜数字 */func guessNum(insertNum int) { temp := 0 n := 0 for { temp = randNum(int64(n)) n++ if (temp != insertNum) { println("Not equal,Now is ",temp) } else { println("Equal! Now is",temp) break } }.

2021-11-22 15:12:07 321

原创 golang随机数,100以内随机数

我服了,网上找个资料哪来那么多废话,我只是要个能用随机数而已func main(){ fmt.Println(randNum())}/**任意数字*/func randNum() int{ // 取当前时间戳 var timeStamp = time.Now().Unix() // 构造一个rand,并使用时间戳作为他的随机种子 r := rand.New(rand.NewSource(timeStamp)) // 取100以内的随机数 num := r.I

2021-11-22 14:27:56 1106

原创 c++ 冒泡排序

#include<iostream>using namespace std;int main() { // 数组排序 int arr[10]; // 随机生成10个数 srand(time(NULL)); cout << "当前数组为:"; for (int i = 0; i < 9; i++) { arr[i] = rand(); cout << arr[i]<<","; } cout << end...

2021-10-06 15:55:03 83

原创 c++ 九九乘法表

#include<iostream>#include<string>using namespace std;int main(){ string black_space = ""; for (int i = 1; i < 10; i++) { cout << "| "; for (int j = 1; j < 10; j++) { if ( i>=j ) { if (i * j < 10) { blac.

2021-09-30 15:32:28 1478

原创 c++ 水仙花数

#include<iostream>using namespace std;int main() { cout << "水仙花" << endl; int n = 100; int a = 0; int b = 0; int c = 0; do { a = n % 10; b = n / 10 % 10; c = n / 100; if ((a * a ...

2021-09-30 11:38:15 272

原创 php代码复用 trait 的一些要点

php不能多继承,只能多层继承,但是php5.4版本后为了解耦,也提供了另一种代码复用方法trait。trait的一些关键点需要注意1,trait怎么使用trait的使用方法就是用trait构建一个类trait firstClass { function test(){ echo 'first'; }}class sonClass extends fatherClass { use firstClass;}$obj = new sonCl

2021-08-06 10:54:11 224

原创 无需修改composer.json更换自动加载路径

近日遇到一个问题,一个服务想要接入一套系统,生产环境下的目录和开发环境的目录是不同的,假设开发环境是 【根目录/application/config】,生产环境是【根目录】

2021-05-31 14:20:14 298 2

原创 sourcetree拉取git时候出错“Too many authentication failures for git“ fatal: Could not read from remote repo

sourcetree报错"Too many authentication failures for git" fatal: Could not read from remote repository.使用git pull命令会报 Already up to date.解决方案:

2021-04-06 09:50:33 491

原创 windows10下docker运行xxl-job 2.3.0

1,安装docker(废话)2,需要拉取两个镜像,mysql 和 xxl-job,推荐使用指定版本,xxl-job的版本低版本的sql表和springboot的连接mysql的方式和高本版都有区别,所以要指定版本号docker pull xuxueli/xxl-job-admin:2.3.0docker pull mysql:5.7.283,启动mysqldocker run -p 【宿主机ip】: 【容器暴露的ip】 --name 【容器的名字】-e MYSQL_ROOT_PAS.

2021-03-29 14:45:58 991

原创 springboot2.1.5.RELEASE构建项目时候报错Failure to find org.eclipse.m2e:lifecycle-mapping:pom:1.0.0

原因不知道,更高版本的时候没有发现,反正就是一个包搞不下来了到github上下载https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin 随便解压一个目录,进入目录后,打开cmd窗口,定位到这个目录,执行mvn clean install这时候还会报错,[ERROR] 不再支持源选项 5。请使用 7 或更高版本。这时候要修改刚才的pom文件,加入版本<properties>...

2021-03-02 19:32:33 279

原创 wsl安装mysql8,nginx,php7.4,顺便安装下swoole

首先,wsl 的目录在C:\Users\kina100\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs因为wsl是挂载在win系统上的,如果出了什么不好改的问题,可以直接去根目录操作,回头改下权限就行了修改源sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo vim /etc/apt/sourc

2021-01-18 13:54:48 433

原创 windows10上使用wsl安装redis并安装php扩展

首先,你要让你的电脑上的windows10升级到2004版本以上,这样可以支持wsl2然后,你要在Microsoft store 安装Ubuntu打开ubuntu,开始安装redis1, 安装gcc编译sudo apt-get install gcc2,安装redis不同版本的redis 下载地址https://download.redis.io/releases/这里找一个php能支持的比较新的版本的redis 5.0.2wget https://dow...

2020-12-02 11:07:38 569

原创 laravel 7 报错 file_put_contents() failed to open stream: Permission denied for Session folder

这个问题是因为权限导致的,laravel因为本身太重了,导致需要搞文件缓存,这时候写入缓存的file_put_contents函数发现在storage文件夹下没有权限,那给他权限,并清除缓存chmod -R gu+w storagechmod -R guo+w storagephp artisan cache:clearg是组权限,u是当前用户权限,o是其他用户权限,+w是增加写权限...

2020-11-29 15:06:34 532

原创 laravel 7 报错 The stream or file “/var/www/storage/logs/laravel.log“ could not be opened in append

laravel项目部署到linux的时候出现The stream or file "/home/www/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied网上的各种教程都是要修改文件夹权限,实际上文件夹权限早就是777了,这时候还有一些centos系统会装SElinux的东西,这是个安全组件,具体就不多说了,现在临时关闭一下SELINUX.

2020-11-29 14:55:31 8778 2

原创 git提交整个代码到服务器的空仓库报错error: failed to push some refs to

从github上clone了一个laravel,写了一些代码后,想上传到另一个服务器,但是在push的时候报错error: failed to push some refs to解决方案是:1,删除git clone的时候留下的 .git 文件夹(目录),windows上看不到的可以打开显示隐藏项目2,git init 直接初始化仓库3,git add . 注意后面的 点 这个符号4,git commit -m "随便写点啥"5,git push -f origin mas...

2020-11-29 12:54:58 467

原创 git 使用代理访问github与删除代理

查看本地的代理端口设置代理,注意,https的端口,前面加上httpsgit config --global http.proxy http://127.0.0.1:10809git config --global https.proxy https://127.0.0.1:10809mypc@DESKTOP-51C5OC3 MINGW64 /c/work/mooc (master)$ git config --global http.proxy http://127....

2020-11-29 11:29:35 869

原创 php面试常规问题主键索引和唯一索引有什么区别

主键一定是唯一性索引,唯一性索引并不一定主键。主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索 引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建 时,已经默认为空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能 创建一个主键,但可以创建多个唯一索引。主键更适合那些不容易更改的唯一标识,如自动递增列、身 份证号等。在 RBO 模式下,主键的执行计划优先级要高于唯一索引。 两者可以提高查询的速度。

2020-11-26 23:03:07 6620

原创 php判断来源是否是蜘蛛

/** * 判断是否是蜘蛛 */function fromRobot($except = '') { $ua = strtolower ( $_SERVER ['HTTP_USER_AGENT'] ); $botchar = "/(baidu|google|spider|soso|yahoo|sohu-search|yodao|robozilla|AhrefsBot)/i"; $except ? $botchar = str_replace ( $except . '|', '',.

2020-11-25 20:12:51 680

原创 mysql的innodb快速count技巧

mysql的innodb因为使用的是聚簇索引,导致count的时候按照索引count,会把聚簇索引里面的数据一起扫描了,导致count起来非常慢,30w的数据,做一次count(*)竟然高达30多秒。经过网上查询看到一个大佬的测试https://imysql.cn/2008_06_24_speedup_innodb_count发现一个技巧,可以额外创建一个字段,字段和主键ID数据一致,然后对该字段建索引,然后再使用count,这样速度就飞起了...

2020-11-21 17:39:47 751

原创 git 在linux部署并从windows上提交代码到linux

默认windows和linux上的git已经安装好了一,建立linux仓库假如我的仓库在 /home/myhub目录下cd /home/myhubgit init --bare myhub.git //这里 git init 是初始化空仓库的意思,而参数 --bare 是代表创建裸仓库,这个参数一定记得带上二,从远程仓库直接克隆git clone [email protected]:/home/myhub/myhub.git myproject解释:git cl.

2020-11-07 00:58:21 457 1

原创 centos 7 防火墙配置

每次用的时候都要搜一遍,这次做个笔记好了1、查看firewall服务状态systemctl status firewalld2、查看firewall的状态firewall-cmd --state3、开启、重启、关闭、firewalld.service服务# 开启service firewalld start# 重启service firewalld restart# 关闭service firewalld stop4、查看防火墙规则firew..

2020-10-28 16:33:05 74

原创 virtualbox centos7 安装增强功能时报错【未能加载虚拟光盘】非图形界面下的解决方案

报错如图在安装增强功能的时候,无论如何都一直报未能加载虚拟光盘,在网上找了好多教程,都是有图形界面的,恰恰我这个没有图形界面,然后再sf论坛上找到一个差不多的,但是他说的也很含糊,倒是指明一个方向第一,把这个iso文件装载到windows里面第二步,挂载lsscsi 命令查看下linux可以看到 /dev/sr0 出现了证明光驱已经出现了在media目录下建立一个新的目录用于挂载你的iso文件,这个目录可以随便命名,我就取个名字叫cdpath建立文件夹...

2020-10-27 22:36:35 3473 4

原创 centos7 下nginx报403错误的处理记录,如何修改selinux使其正常

nginx刚装好,因为配置文件里面设置的网站根目录是自己在/home下的www目录,所以访问的时候直接报403猜测一:权限问题,整个文件夹改成了755,然后又改成777,还是不行猜测二:nginx的运行用户组权限不够ps -aux | grep nginx发现用户是nginx,然后去配置文件(nginx的配置文件)修改,把用户改成了root,重启nginx,发现还是403那就应该不是nginx的配置问题猜测三:SELinux问题,这个问题就是linux的一个安全...

2020-10-27 15:51:02 3624

原创 nginx指定配置文件启动

第一步:先关闭nginx, kill掉所有的nginx进程pkill -9 nginx# 运行命令参看nginx服务是否关闭netstat -tnulp | grep nginx # 参看端口是否关闭systemctl status nginx # 查看服务是否关闭第二步:指定nginx的启动配置文件,要写完整路径nginx -c -t /etc/nginx/nginx.conf # 配置文件路径# -c </path/to/config> 为 Nginx 指.

2020-10-26 18:38:11 20750 2

转载 【转载】Centos7.7 yum安装LNMP nginx1.18.0+php7.4.6

安装nginx 设置nginx安装源 可根据官网给出的进行设置点我跳转到官网设置这里将官网给出的centos的配置复制如下[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfi.

2020-10-26 18:12:58 405 1

sql基础速查表 - 可打印

很全面的SQL基础速查

2023-03-11

机器学习 深度学习背后的数学知识

看完这本书你就懂了机器学习背后的数学知识 书中计算机的代数,拓扑,微分微积分,以及计算机科学和机器学习的优化理论一应俱全,共2190页。 这是作者放出的草稿,请支持作者购买实体书(还没出版)

2023-03-11

圣克鲁斯加利福尼亚大学的老师Eric Lengyel总结的二进制运算基础

圣克鲁斯加利福尼亚大学的老师Eric Lengyel总结的二进制运算基础

2023-03-11

《Scientific Visualization: Python + Matplo》科学可视化:Python 和 Matplo

本书分为四个部分。 第一部分考虑 Matplotlib 库的基本原理。 这包括回顾构成图形的不同部分、不同的坐标系、可用的比例和投影,我们还将介绍一些与排版和颜色相关的概念。 第二部分致力于图形的实际设计。 在介绍了一些用于生成更好图形的简单规则之后,我们将继续解释 Matplotlib 默认设置和样式系统,然后再深入到图形布局组织。 然后,我们将探索可用的不同类型的绘图,并了解如何用不同的元素装饰图形。 第三部分致力于更高级的概念,即3D图形、优化和动画。 第四部分为案例。

2023-03-11

doubanmovie250top.rar

python3.7 scrapy 采集豆瓣电影top250 ,需要的包 scrapy,解压就能用。用的是xpath,使用 scrapy crawl douban_movie_top250 -o douban_movie_top250.csv 直接生成csv文件导出

2020-08-11

ImageMagick-6.9.3-7-Q16-x64-dll.exe dll版本,q16是十六位

ImageMagick-6.9.3-7-Q16-x64-dll.exe ,又要其他版本的可以私信我,我帮你找找看

2017-10-13

ImageMagick-6.9.3-7-Q16-x86-dll.exe

ImageMagick-6.9.3-7-Q16-x86-dll.exe 做php目前能用的最高版本,大家都会用的,我就提供下资源,有要其他版本的请私信,我帮你找找

2017-10-13

ImageMagick-6.9.3-7-Q16-HDRI-x64-dll.exe

ImageMagick-6.9.3-7-Q16-HDRI-x64-dll.exe下载,旧版本,方便大家使用

2017-10-13

PHP 5.3入门经典(所有的源码)

PHP 5.3入门经典这本书所有的源码,没有书,只有源码

2016-11-19

用js实现网页背景色彩虹渐变

使用简单的js来实现网页背景色彩虹色渐变,不是切换,是一直循环变色

2016-09-28

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

TA关注的人

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