自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis

单线程 Redis 为什么快redis 单线程是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是redis对外提供键值存储服务的主要流程。但是redis的其它功能:持久化、异步删除、集群数据同步等都是由额外的线程执行的多线程的开销系统中通常会存在被多线程同时访问的共享资源,比如一个共享的数据结构。当多个线程要修改这个共享资源时,为了保证共享资源的正确性,就需要有额外的机制保证,而这个额外的机制会带来额外的开销。单线程redis快的原因大部分的操作在内存上完成高效的数据结构多路

2020-09-07 23:45:03 143

原创 一点点开发习惯

在写完一个小功能(测试)的时候就可以 commit 一下代码了在提交代码之前首先 git diff 检查一下本次的修改是否是自己预期commit的信息自己可以反复读两遍,看是否准确表达出含义。(团队可定一个message的规则)超过三次以上的重复代码需要抽取出来一些大家经常写的变量(比如wrapper、wrapped),虽然意思相同,但是最好统一一下写法代码格式需要整洁,该换行换行(统一换行风格),注释掉的内容该删就删掉如果使用了第三方的插件,如果你信任它则可以不进行测试(或者人家在发部之前就.

2020-08-27 15:27:20 116

原创 vim常用操作

查找f / F 跳转到 下一个 / 上一个 字符t / T 跳转到 下一个 / 上一个 字符前s / S 向下/向上 查找两个字符使用 ; 跳转到下一个搜索结果 , 跳转到上一个搜索结果建议使用 s/S 来进行光标跳转删除比如有单词 hello world 光标处于 e 处命令功能x删除当前光标字符X删除光标前字符C删除到行尾并进入插入模式D删除到行尾并跳到上一个字符 比如上面的使用 D 则剩下 h 光标在***h***处dw删除当

2020-08-27 14:42:20 239

原创 go的一些知识点

func TestDefer(t *testing.T) { defer func() { fmt.Println("1")}() defer func() { fmt.Println("2")}() defer func() { fmt.Println("3")}() panic("error")}当协程碰到 panic 的时候,会遍历该协程的 defer 并执行,如果在 defer 执行的过程遇到 recover 则停止 panic ,返回 recover 继续向下执行,否则遍

2020-08-26 17:43:36 210

原创 分享一个TDD写Golang的链接

https://studygolang.gitbook.io/learn-go-with-tests/

2020-08-14 15:34:28 198

原创 封装

以下内容来自《重构》第二版第七章部分内容1. 封装记录organization = { name: "xp", country: "CH" };// 封装class Origanization { constructor(data) { this._name = data.name; this._country = data.country; } get name() { return this._name; } set name(arg) {

2020-07-17 13:44:18 129

原创 代码重构

首先声明以下内容来自《重构》第二版的第六章1. 提炼函数function printOwing(invoice) { let outstanding = 0; console.log("***********************") console.log("**** Customer Owes ****") console.log("***********************") // calculate outstanding for (const o of i

2020-07-11 18:56:13 266 1

原创 9位唯一码

碰到个需求:预生成唯一码要存数据库,使用唯一索引唯一码需要随机生成这里我利用了自增id,首先初始化一个固定的起始值initNumber,然后每次生成的时候从数据库中取出当前有多少个唯一码totalNum,最后是需要生成唯一码的数量count我就测了单表2000w条数据没问题$initNumber = 123456789;$totalNum = 10000; // 数据库查询获得$count = 8888; //需要生成的唯一码数量,用户输入for ($i = 0; $i < $cou

2020-06-26 16:36:19 1363 1

原创 php性能方面

批量插入很多数据的时候比如需要插入10w条数据的时候可以使用事物,每1000条作为一个事物(具体多少条可以自己尝试一下)因为每次insert操作的时候MySQL内部会建立一个事务,批量使用事物插入可以减少事务创建的时间yield 生成器还是接着上面的问题,在生成数据的时候可以使用yield减少内存使用,具体yeild可以自己去了解一下 function test($count) { for ($i = 0; $i < $end; $i++) { yield $i; } }

2020-06-26 13:58:21 241

原创 vim常见插件,加上自己的亿点点快捷键配置.vimrc

注意 " 是注释set ts=4set sw=4set number"let mapleader=','call plug#begin('~/.vim/plugged')"代码补全Plug 'neoclide/coc.nvim', {'branch': 'release'}"主题Plug 'morhetz/gruvbox'"测试Plug 'vim-test/vim-test'"括号匹配Plug 'jiangmiao/auto-pairs'"文件搜索Plug 'junegun

2020-06-23 11:43:07 197

原创 Laravel(phpUnit)测试删除了表

这个问题emmm,也是迷惑了好久因为我一开始改了phpunit.xml;我自己用的也是mysql<php> <server name="DB_CONNECTION" value="mysql"/> <server name="DB_DATABASE" value="tableName"/></php>然后测试的时候,如果是用了 assertInstanceOf()方法就会清空表,具体原因,我也不清楚然后,又改回来了<php> &

2020-05-22 15:50:42 284 1

原创 Laravel:测试错误InvalidArgumentException : Unable to locate factory for

错误内容: InvalidArgumentException : Unable to locate factory for [App\Xxxx]百度上找了两天了都没找到,刚刚尝试的去google了一下,果然名不虚传解决方法:use PHPUnit\Framework\TestCase;改成PHPUnit\Framework\TestCase;...

2020-05-22 15:02:34 600

原创 Go切片

最近看了一些大佬们写的Golang文章,收获颇多,作为一个白嫖党,可真快乐。这里我也跟大家分享一下最近的收获(如有错误请指出,emmm小白水平有限)切片切片是go里面常用的数据类型,切片是Go中三个引用类型之一,Go的切片是一个结构体,先来看看切片的结构体runtime/slice.gotype slice struct { array unsafe.Pointer // 指向数组的指针 len int // 长度 cap int // 容量 }我之前一直很迷惑len()到

2020-05-10 15:44:20 176

原创 go和js使用rsa加密

//生成公钥、私钥文件func GenRsaKey(bits int) error { // 生成私钥文件 privateKey, err := rsa.GenerateKey(rand.Reader, bits) if err != nil { return err } derStream := x509.MarshalPKCS1PrivateKey(privateKey) b...

2020-02-11 15:16:22 721

原创 quay.io/coreos/etcd pull不了

docker pull 这个包需要在(如果docker在虚拟机里面) 虚拟机里面设置代理具体网站是:https://quay.io/repository/coreos/etcd?tag=latest&tab=tags可以下一个proxychains设置好代理之后proxychains4 docker pull quay.io/coreos/etcd:v3.3.18代理的地址,em...

2019-11-28 16:07:26 994

原创 docker-compose.yml运行时deny问题

在服务中加上 privileged: truedocker-compose.ymlversion: '3'services: mysql_1: image: mysql:5.7 ports: - 3306:3306 volumes: - "/data/mysql/node1/data/:/var/lib/mysql" - "/d...

2019-11-28 01:10:46 202

原创 Dockerfile

vim dockerfile#新建dockfile文件:内容如下FROM centosVOLUME ["/createFile1", "/createFile2"]CMD echo "finish, --------success"CMD /bin/bash#执行dockfile文件docker build -f dockfiel -t lalala/centos .执行成功后...

2019-11-21 15:00:40 91

原创 Docker安装 -centos7,docker-compose

docker官方手册https://docs.docker.com/install/linux/docker-ce/centos/一 卸载旧版本这里我用的是刚刚装的centos,就不需要这一步sudo yum remove docker \ docker-client \ docker-client-latest \ ...

2019-11-15 14:49:41 122

原创 MySQL索引

之前看了很多讲索引和优化的文章,自己也没咋用过。这里终于造了点数据。也来验证一下;这里参考这篇文章https://blog.csdn.net/u012954706/article/details/81241049第一部分索引选取类型越小的数据类型通常更好;越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。简单的数据类型更好:整型数据比起字符串处理开销更小,因为...

2019-11-12 19:22:52 135

原创 mysql进阶-08数据库设计

数据库结构优化的目的减少数据冗余尽量避免数据维护中出现更新,插入和删除异常插入异常:表中的某个实体随着另一个实体而存在更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新删除异常:如果删除表中的某一实体则会导致其它实体的消失节约数据空间提高查询效率数据库结构设计的步骤需求分析1. 全面了解产品设计的存储需求2. 存储需求...

2019-08-27 23:49:54 115

原创 mysql进阶-07存储引擎其它

CSV数据以文本方式存储在文件中myisam和innodb均为二进制.CSV文件存储表内容.CSM文件存储表的元数据如表状态和数据量.frm文件存储表结构信息特点1. 以CSV格式进行数据存储2. 所有列必须都是不能为null的3. 不支持索引4. 可以对数据文件直接编辑使用场景 1. 适合作为数据交换的中间表Archive 1. 以zlib对表数据...

2019-08-25 23:53:48 108

原创 mysql进阶-06存储引擎Innodb

innodb是mysql5.5及以后版本默认存储引擎innodb支持事务innodb适用表空间进行数据存储配置:innodb_file_per_table on:独立表空间:tableName.ibd off:系统表空间:ibdataX系统表空间和独立表空间的选择比较: 1. 系统表空间无法简单的收缩文件大小 2. 独立表空间可以通过optimiz...

2019-08-25 23:20:53 157

原创 mysql进阶-05存储引擎Myisam

MyISAM存储引擎由MYD和MYI组成myisam 特性并发性与锁级别使用表级锁读写混合并发性支持不太好表损坏修复check table tableNamerepair table tableName3.支持索引类型1. 全文索引2. 支持数据压缩 myisampack 压缩的表不能写限制1. 版本 &lt...

2019-08-25 23:20:20 78

原创 2.nginx模块

http_stub_status_modulesyntax: stub_status;default: -context:server, location配置: location /mystatus { stub_status;}浏览器访问:ip/mystatus,结果如下Active connections: 2 server accepts handled req...

2019-08-23 11:51:21 61

原创 mysql进阶-04存储引擎-MyISAM

MyISAM存储引擎由MYD和MYI组成myisam 特性并发性与锁级别使用表级锁读写混合并发性支持不太好表损坏修复check table tableNamerepair table tableName3.支持索引类型1. 全文索引2. 支持数据压缩 myisampack 压缩的表不能写限制1. 版本 &lt...

2019-08-23 11:29:25 153

原创 mysql进阶-03数据库性能的影响-2-操作系统

mysql适合的操作系统windows FreeBSD solaris linuxcentos系统参数优化内核相关参数 /etc/sysctl.conf 网络参数: net.core.somaxconn = 65535 net.core.netdev_max_backlog = 65535 net.ipv4.tcp_max...

2019-08-22 19:21:45 149

原创 mysql进阶-02数据库性能的影响-1-硬件

cpu、内存大小更多的cpu还是更快的cpu1. 应用是不是cpu密集型 是 --更好的cpu2. 系统并发量??? 大 --cpu越多越好3. web应用 cpu数量越多越好3. mysql版本 新版本 多cpu 老版本 好cpu4. 64位机器 使用32位的操作系统存储引擎 myisam 索引在内存中 数据通...

2019-08-22 19:20:58 152

原创 mysql进阶01-基础拓展

qps: 每秒钟处理的查询量数据库风险大量的并发数据库连接数被占满(max_connections默认为100)超高的cpu使用率因cpu资源耗尽而出现宕机磁盘 io磁盘IO性能突然下降(使用更快的磁盘设备)其它大量消耗磁盘性能的任务计划(调整计划任务,做好磁盘维护)网卡风险: 网卡IO被占满避免: 1. 减少从服务器的数量 2. ...

2019-08-22 19:19:38 107

原创 1.nginx基础

nginx是一个开源且高性能、可靠的http中间件、代理服务选择nginx的原因:io多路复用io多路复用 多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的 “复用” 指的是复用同一个线程I/O多路复用实现的方式 select、poll、epollselect是linux下出现的最早的缺点: 1. 能够监视文件描述符的...

2019-08-16 09:59:31 76

原创 tcl

TCL 事务控制语言事务事务由单独单元的一个或多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中的某条sql语句一旦执行失败或者产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果都执行成功,则事物被顺利执行存储引擎//通过show engines;来查看mysql支持的存储引擎在mysql中...

2019-08-15 20:08:09 222

原创 dql

基本的sql就不记录了查询常量值1. SELECT 100;2. SELECT 'join';查询表达式1. SELECT 100 * 98;2. SELECT 100 % 98; 查询函数, 获取函数的返回值1. SELECT VERSION();别名1. SELECT 100 AS 结果;2. SELECT 100 结果;去重1. SEL...

2019-08-15 20:07:39 105

原创 dml

DML数据操作语言插入删除修改INSERT 插入语法INSERT into 表名(列名1, 列名2, ......) values(值1, 值2, ......);INSERT into 表名SET 列名1 = 值1, 列名2 = 值2, ...... 示例1INSERT INTO stu(name, birth, class_id) values('啦啦啦', '...

2019-08-15 20:07:08 604

原创 DDL

DDL介绍数据定义语言库和表的管理库的管理创建修改删除表的管理创建修改删除创建CREATE修改ALTER删除DROP库的管理语法CREATE DATABASE book;#上面的有可能会乱码#最好用CREATE DATABASE book charset = utf8;CREATE DATABASE IF NOT EXIST...

2019-08-15 20:06:39 96

原创 mysql索引

mysql官方对索引的定义为:索引(index)是帮助mysql高效获取数据的数据结构。索引两大功能 : 查找 排序一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上我们平常说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉树)结构组织的索引。其中聚集索引,次要索引,覆盖索引,符合索引,前缀索引,唯一索引默认都是B+树索引,统称索引...

2019-08-15 20:06:04 65

原创 存储过程和函数

存储过程和函数存储过程和函数:类似于java中的方法存储过程含义:一组预先编译好的sql语句的集合,理解成批处理语句好处: 1. 提高代码的重用性 2. 简化操作 3. 减少了编译次数并且减少了和数据库服务器的连接次数,提高效率创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的sql语句)EN...

2019-08-15 20:05:16 162

原创 mysql常见命令

mysql常见命令1.查看当前所有数据库show databases;2.打开指定的数据库use 库名3.查看当前库所有的表show tables;4.查看其它库所有表show tables from 库名;5.创建表create table 表名{ 列名 列属性, 列名 列属性, ........}6.查看表结构desc 表名;7.查看服务器版...

2019-08-15 20:04:49 94

原创 mysql变量

系统变量--系统变量由系统提供,不是用户定义,属于服务器层面--使用语法-- 1. 查看所有的系统变量SHOW GLOBAL | [SESSION] VARIABLES;-- 2. 查看满足条件的系统变量SHOW GLOBAL| [SESSION] VARIABLES LIKE '%字符串%';-- 3. 查看指定的某个系统变量的值 global指全局,不写默认为会话 SESSI...

2019-08-15 20:04:10 72

原创 c关键字32个

关键字 意义auto 声明自动变量,缺省时编译器一般默认为autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变...

2019-04-15 08:53:44 108

原创 算法题:合并两个有序数组

来源:https://leetcode-cn.com给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 =...

2019-04-13 10:35:36 290

原创 算法题:加一

题目来源:https://leetcode-cn.com/给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]...

2019-04-12 13:40:42 166

php运行出错的vc库啦啦啦啦

这里面提供大部分php都适用的vc++运行库,32位和64位版本的都有

2019-03-24

空空如也

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

TA关注的人

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