- 博客(64)
- 资源 (37)
- 收藏
- 关注
原创 centos 安装 monogoDB4.4 教程
monogoDB 安装教程说明 系统版本 centos7.6下载软件wget https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.4-1.el7.x86_64.rpm安装rpm -ivh mongodb-org-server-4.4.4-1.el7.x86_64.rpm启动monogoDB 停止monogoDBsystemctl start mongod.se
2021-04-06 14:42:48
420
原创 Laravel Artisan 内置命令介绍
Laravel Artisan 内置命令介绍运行 php artisan list 命令后,会看到 Laravel 应用默认提供了很多 Artisan 命令命令说明help为指定命令提供使用帮助信息,如 php artisan help make:requestclear-compiled移除编译过的类文件,比如缓存、Blade视图文件等down将应用切换到维护模式以便查找问题up将应用从维护模式恢复为正常模式env显示应用当前运行环境,如 loca
2021-01-08 17:19:19
282
1
原创 Go 语言 fmt.Scan,Fscan,Sscan相关用法
Go 语言 fmt.Scan 相关用法1.Scanfmt.Scanfunc Scan(a ...interface{}) (n int, err error)Scan从标准输入扫描文本,读取由空白符分隔的值保存到传递给本函数的参数中,换行符视为空白符。本函数返回成功扫描的数据个数和遇到的任何错误。如果读取的数据个数比提供的参数少,会返回一个错误报告原因。func main() { var name string var age int fmt.Scan(&name
2020-12-18 11:31:25
2669
原创 Laravel开发必备 代码追踪、自动补全插件 laravel-ide-helper
插件Github地址:https://github.com/barryvdh/laravel-ide-helper一、安装插件composer require barryvdh/laravel-ide-helper二、注册插件然后在config/app.php的providers选项中注册服务提供者Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,三、生成Laravel门面对应的PHPDocphp artisan ide-hel
2020-12-16 17:37:05
406
原创 laravel seeder 填充数据
laravel seeder 填充数据关于 laravel 数据迁移 查看这篇创建测试表sql语句生成CREATE TABLE `as_address` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `province` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `city` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
2020-12-15 16:08:08
241
转载 Mysql 优化技巧
MySQL优化十大技巧转自:https://m.2cto.com/database/201701/557910.htmlMYSQL优化主要分为以下四大方面:设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。架构:主从复制,读写分离,负载均衡。合理SQL:测试,经验。一、存储引擎在创建表的时候我们使用sql语句,Create table tableName () engine=myisam|innodb;这里就指明了存储引擎是myisam还是innodb。存储引擎是一种用来存
2020-12-14 17:53:53
214
原创 Docker 学习 运行配置 nginx+ php
docker 配置 nginx+ phpdocker 的安装 请查看 centos7安装 centos8安装查看nginx 镜像命令行 `docker search nginx官网查看 Link执行命令 docker pull nginx 下载nginx 镜像执行命令 docker images 查看本地的镜像查看php镜像命令行 `docker search php官网查看 Link执行命令 docker pull php:7.4-
2020-12-10 17:23:44
211
原创 laraver 数据迁移
laraver 数据迁移环境1. Artisan 命令 make:migration创建表(as_posts) php artisan make:migration create_users_table --create=as_posts执行命令生成如下代码(路径:项目/database/factories)修改表
2020-11-27 11:46:20
171
原创 golang 学习(三十二)注意:捕获迭代变量
警告:捕获迭代变量错误代码:1.for rangevar rmdirs []func()for _, dir := range tempDirs() { os.MkdirAll(dir, 0755) rmdirs = append(rmdirs, func() { os.RemoveAll(dir) // NOTE: incorrect! })}2.for ivar rmdirs []func()dirs := tempDirs()for i :=
2020-11-24 15:02:57
504
原创 MySQL 学习(十)order by工作原理
order by工作原理关键字:max_length_for_sort_datamax_length_for_sort_data,是 MySQL 中专门控制用于排序的行数据的长度的一个参数。它的意思是,如果单行的长度超过这个值,MySQL 就认为单行太大,要换一个算法.假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名。CREATE TABLE `test_city` ( `id` int(11) NOT NULL, `city` varchar(16)
2020-11-20 16:11:19
141
原创 MySQL 学习(九)InnoDB 如何重建表
InnoDB 如何重建表1.参数 innodb_file_per_table这个个参数设置为 OFF 表示的是,表的数据放在系统共享表空间,也就是跟数据字典放在一起这个参数设置为 ON 表示的是,每个 InnoDB 表数据存储在一个以 .ibd 为后缀的文件中从 MySQL 5.6.6 版本开始,它的默认值就是 ON 了delete 数据,表数据删掉一半,表文件大小不变如果我们执行delete,删除一行数据,这行记录就会被标为可复用如果我们用 delete 命令把整个表的数据删除呢?结果
2020-11-10 16:14:07
1726
原创 MySQL 学习(八)InnoDB 刷脏页的控制策略
InnoDB 刷脏页的控制策略1.InnoDB 刷脏页的控制策略innodb_io_capacity 它会告诉 InnoDB 你的磁盘能力.这个值建议你设置成磁盘的 IOPS。磁盘的 IOPS 可以通过 fio 这个工具来测试,下面的语句是我用来测试磁盘随机读写的命令:fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runt
2020-10-29 16:54:00
678
原创 mysql 学习(七)关于字符串字段加索引
关于字符串字段加索引比如给一个email 字段添加索引整个email字段添加索引 add index index1(email)利用前缀长度来添加索引 add index index2(email(6))由于 email(6) 这个索引结构中每个邮箱字段都只取前 6 个字节,所以占用的空间会更小,这就是使用前缀索引的优势,可能会增加额外的记录扫描次数。通过下面代码测试前缀索引的区分度:mysql> select count(distinct left(email,4))as L4
2020-10-12 14:40:22
243
原创 laravel 按天生成日志的设置
laravel 按天生成日志的设置laravel 的默认日志记录在一个文件storage/logs/laravel.log,日积月累文件越来越大,查找很不方便,于是想到可不可以按日期生成日志。laravel日志支持4种模式,默认使用single即单一日志,只存储在一个文件中。配置1.日志的配置信息在config/app.php里默认是 ‘log’ => env(‘APP_LOG’, ‘single’), 修改成每天生成日志,只需要把"single" 修改成"daily", 可以直接修改,
2020-10-09 17:00:49
3365
1
原创 MySQL 记录 权限的创建
MySQL 权限的创建新建用户格式:create user “username”@“host” identified by “password”;username 用户名password 密码host=“localhost” 允许本地登录host=“ip” 允许ip地址host="%",允许所以ip登录create user 'user1'@'localhost' identified by '123456';create user 'user1'@'127.0.0.1' ident
2020-09-18 10:14:39
139
原创 centos7 通过docker 安装Jenkins实现后端PHP自动化部署
centos7 通过docker 安装Jenkins实现后端PHP自动化部署docker的安装 请查看这篇文章:centos7安装docker前期准备基于Centos7系统云服务器一台。基于php的项目部署在gitlab之上Jenkins官网https://www.jenkins.io/Jenkins docker 安装说明 https://www.jenkins.io/solutions/docker/中文网址:https://www.jenkins.io/zh/doc/book/inst
2020-09-14 16:47:21
679
原创 Mysql 学习(六)MySQL的行锁
MySQL的行锁MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB是支持行锁的,这也是 MyISAM 被 InnoDB 替代的重要原因之一行锁就是针对数据表中行记录的锁,比如事务 A 更新了一行,而这时候事务 B 也要更新同一行,则必须等事务 A 的操作完成后才能进行更新两阶段锁在 InnoDB 事
2020-09-03 16:48:39
234
原创 centos7 安装 docker教程
centos7 安装 docker教程安装步骤在CentOS7安装docker 查看centos版本号# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,查看内核 版本号# uname -r3.10.0-957.27.2.el7.x86_64用yum源安装查看是否已安装docker# yum list installed | gr
2020-09-01 11:47:51
245
原创 HttpCode 状态说明表
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功)表示成功处理了请求的状态码。200(成功)服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。201(已创建)请求成功并且服务器创建
2020-08-21 17:31:37
264
原创 Mysql 学习(四)MySQL事务隔离性
MySQL事务隔离性事务1.事务就是要保证一组数据库操作,要么全部成功,要么全部失败。2. 在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。3. MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原因之一隔离性与隔离级别1.mysql的ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)2.当数据库上有
2020-08-18 22:28:13
136
原创 Mysql 学习(三)MySQL重新建立主键索引和非主键索引的方法
MySQL重新建立主键索引和非主键索引的方法重新建立主键索引方法这是错误的写法alter table T drop primary key;alter table T add primary key(id);mysql官方文档写了三种措施:整个数据库迁移,先dump出来再重建表(这个一般只适合离线的业务来做);用空的alter操作,比如ALTER TABLE t1 ENGINE = InnoDB;这样子就会原地重建表结构;用repaire table,不过这个是由存储引擎决定支不支持的(
2020-08-05 20:44:47
1707
2
原创 Mysql 学习(二)MySQL的redolog和binlog区别和联系
redolog和binlog区别和联系区别redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;binlog 是逻辑日志,记录的是这个语句的原始逻辑。redo log 是循环写的,空间固定会用完(4个文件,每个文件1G);binlog 是可以追加写入的。“追加写”是指 binlog文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。联系行器先找引擎
2020-07-29 22:40:36
1140
原创 golang 学习(一)main()方法的应用以及编写测试程序
main()方法的应用获取命令行参数 os.Argsmain() 方法退出执行 os.Exitimport ( "fmt" "os")func main() { //获取命令行参数 var arg = os.Args fmt.Println(arg) //[C:\Users\mm\AppData\Local\Temp\go-build001296202\b001\exe\main.exe chao] fmt.Println(arg[1])//chao fmt.Println("
2020-07-27 17:26:07
759
原创 golang 学习(三十一)文件的读取和写入
文件的读取和写入文件的读取操作打开和关闭文件os.Open() 函数能够打开一个文件,返回一个*File 和一个 err。操作完成文件对象以后一定要记得关闭文件import ("fmt""os")func TestOpenFile(t *testing.T) { //以只读方式打开文件 fp, err := os.Open("F:/test.txt") if err!=nil{ fmt.Println("打开文件失败") } fmt.Println(fp)//&{0xc
2020-07-20 22:08:32
469
原创 golang 学习(三十一)反射(Reflect)的介绍以及用法
反射(Reflect)的介绍以及用法反射的前言有时我们需要写一个函数,这个函数有能力统一处理各种值类型,而这些类型可能无法共享 同一个接口,也可能布局未知,也有可能这个类型在我们设计函数时还不存在,这个时候我 们就可以用到反射。空接口可以存储任意类型的变量,那我们如何知道这个空接口保存数据的类型是什么? 值是什么呢?可以使用类型断言可以使用反射实现,也就是在程序运行时动态的获取一个变量的类型信息和值信息。把结构体序列化成 json 字符串,自定义结构体 Tag 标签的时候就用到了反射
2020-07-18 21:14:19
1305
原创 golang 学习(三十)gorouting的互斥锁和读写锁
gorouting的互斥锁和读写锁互斥锁互斥锁是一种常用的控制共享资源访问的方法,它能够保证同时只有一个 goroutine 可以访问共享资源。Go 语言中使用 sync 包的 Mutex 类型来实现互斥锁.使用互斥锁能够保证同一时间有且只有一个 goroutine 进入临界区,其他的 goroutine 则在等待锁;当互斥锁释放后,等待的goroutine 才可以获取锁进入临界区,多个 goroutine 同时等待一个锁时,唤醒的策略是随机的.虽然使用互斥锁能解决资源争夺问题,但是并不完美,通过
2020-07-17 09:59:47
364
原创 golang 学习(三十)管道(channel)介绍以及应用
管道(channel)介绍以及应用管道是 Golang 在语言级别上提供的 goroutine 间的通讯方式,我们可以使用 channel 在 多个 goroutine之间传递消息。如果说 goroutine 是 Go 程序并发的执行体,channel 就是它们 之间的连接。channel 是可以让一个goroutine 发送特定值到另一个 gorutine 的通信机制Golang 的并发模型是 CSP(Comunicating Sequential Processes),提倡通过通信共享内 存而不是
2020-07-15 07:17:40
1534
原创 golang 学习(二十九)协程(gorouting)介绍以及sync.WaitGroup,素数
协程(gorouting)介绍以及sync.WaitGroup进程、线程进程(Proces)就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,进程是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进 程都有一个自己的地址空间。一个进程至少有 5种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。通俗的讲进程就是一个正在执行的程序。线程 是进程的一个执行实例,是程序执行的最小单元,它是比进程更小的能独立运行的基 本单位一个进程可以创建多个线程,同
2020-07-12 22:32:46
511
原创 golang 学习(二十八)空接口(interface)的用法和类型断言
空接口(interface)的用法和类型断言golang 中的接口可以不定义任何方法,没有定义任何方法的接口就是空接口。空接口表示 没有任何约束,因此任何类型变量都可以实现空接口空接口在实际项目中用的是非常多的,用空接口可以表示任意数据类型import ( "fmt" "testing")//空接口 表示没有任何约束 任意的类型都可以实现 空接口也可以直接当做类型来使用,可以表示任意类型type A interface { }func TestInterfaceType(t *t
2020-07-09 23:56:22
3284
3
原创 golang 学习(二十七)接口(interface)的用法和介绍
接口(interface)的用法和介绍Golang 中的接口(interface)Golang 中的接口是一种抽象数据类型,Golang 中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象来实现通俗的讲接口就一个标准,它是对一个对象的行为和规范进行约定,约定实现接口的对象必须得按照接口的规范Golang 中的接口(interface)的定义在 Golang 中接口(interface)是一种类型,一种抽象的类型。接口(interface)是一组 函数 method的集
2020-07-08 22:34:01
920
原创 golang 学习(二十六)第三方包的下载和安装
第三方包的下载和安装go 第三方包下载网址https://pkg.go.dev/1.go mod int 初始化项目,生成go.mod文件2.项目中添加需要引入的包import ( "fmt" "github.com/shopspring/decimal" //处理float运算精度不准确的问题 "github.com/tidwall/gjson" //处理json数据)func TestPackage(t *testing.T) { //加入方法 fl1 := 5.323 f
2020-07-07 22:15:27
1187
原创 laravel 5、5.2、5.3 redis的配置
laravel 5、5.2、5.3 redis的配置路径:laravel/config/database.php单台redis服务器'redis' => [ 'cluster' => false, 'default' => [ 'host' => env('REDIS_HOST', '10.100.1.10'), 'password' => env('REDIS_PASSWORD', ''),
2020-07-07 10:10:07
235
原创 golang 学习(二十五)go mod以及自定义包package的用法和init()方法
go mod以及自定义包package的用法和init()方法包的介绍和定义包(packge)是多个 Go 源码的集合,是一种高级的代码复用方案,Go 语言为我们提供了 很多内置包,如:fmt、strconv、strings、sort、eros、time、encoding/json、os、io 等。Golang 中的包可以分为三种:1、系统内置包 2、自定义包 3、第三方包 系统内置包: Golang语言给我们提供的内置包,引入后可以直接使用,如 fmt、srconv、strings、sort、e
2020-07-07 00:10:17
18954
4
原创 golang 学习(二十四)结构体struct 和 json之间的转换
结构体struct 和 json之间的转换import ( "encoding/json" "fmt" "math/rand")struct转json字符串 json.Marshal()type Student struct { Id int Name string Age int //如果定义为age 私有属性不能被json包访问 Sno string}type Teacher struct { Id int Name string Age int Tno
2020-07-05 15:21:29
920
原创 golang 学习(二十三)结构体struct的用法
结构体struct的用法import ( "fmt")定义结构体 首字母 大写是公有(public) 小写就是私有(private)属性 首字母 大写是公有(public) 小写就是私有(private)type person struct { name string sex string age int}实例化结构体 //1. var p person //实例化结构体 p.name = "王二" p.age = 20 p.sex = "男" fmt.Printf(
2020-07-04 21:33:48
658
原创 golang 学习(二十二)指针的用法
指针的用法指针也是一个变量,但它是一种特殊的变量,它存储的数据不是一个普通的值,而是另一个变量的内存地址 var a = 10 fmt.Printf("a值%v--a的类型%T--a的内存地址%p\n",a,a,&a)//a值1--a的类型int--a的内存地址0xc000094158 var p = &a //p指针变量 p的类型 *int fmt.Printf("%v--%p",p,&p)//0xc00000a1c0--0xc0000060381 //*p 取出p对
2020-07-03 23:35:49
144
原创 golang 学习(二十一)time 时间,时间戳的用法以及定时器
time 时间的用法import ( "fmt" "testing" "time")时间的创建 和 获取var timeObj = time.Now()fmt.Println(timeObj) //2020-07-02 21:53:54.2141593 +0800 CST m=+0.006999401year := timeObj.Year()month := timeObj.Month()day := timeObj.Day()hour := timeObj.Hour()min
2020-07-02 23:05:08
827
php(5.2 5.3 5.4 5.5) memcached dll 动态库
2014-09-24
LanguagePack_1.6.11.20210-win32-zh_CN.msi
2010-11-01
svn-LanguagePack_1.6.3.16613-win32-zh_CN.msi
2010-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人