自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

RedHaohao的博客

共同学习 一起成长

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

原创 银行家算法的实现

吐槽我们学校软件工程对OS教学要求真的低,我们的课程设计竟然是计科的普通实验内容。认真写注释,真的好累。(代码不写注释都是在耍流氓)一、实验目的1、加深理解银行家算法及相关概念。2、掌握进程申请资源时的安全性检查算法。3、能看懂资源分配表(教材p122图3-5)。二、实验原理1、银行家算法原为银行系统设计,以确保银行在发放现金贷款时,不会发生不能满足所有客户需求的情况。银行家算...

2018-12-12 21:11:45 2264

原创 Go goroutine

问题 runtime.GOMAXPROCS(1) slice := []int{1, 2, 3, 4, 5} flag := 0 var g sync.WaitGroup g.Add(1) go func() { defer g.Done() for i, v := range slice ...

2020-03-04 13:03:43 267 1

原创 golang常用函数

1.获取当前时间时间戳(秒):time.Now().Unix日期:time.Now().Format("2006-01-02 15:04:05")注意:参数必须是 2006-01-02 15:04:05 而不能是自定义的年月日时间2.字符串与int转换i,_ := strconv.Atoi("3")a := strconv.Itoa(32)...

2020-03-04 13:01:41 753

原创 Go与其他语言不同的、需要注意的点

1.重复声明同一变量2.switch的使用3.多个defer前后调用顺序4.被推迟函数的实参(如果该函数为方法则还包括接收者)在推迟执行时就会求值, 而不是在调用执行时才求值。5.new和makenew。这是个用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存,只会将内存置零。 也就是说,new(T)会为类型为T的新项分...

2020-03-04 13:00:43 331

原创 golang 关键知识点

一.map相关1.map读取如果key不存在,返回零值;也就是说,根据这个value的类型,返回缺省值,比如string返回空字符串,int返回0;2.在range循环里对maps做添加或删除元素的操作是不安全的如果在循环中对maps添加了一个元素,那么这个元素并不一定会出现在后续的迭代中。对于第一点,我们知道maps实际上是结构体的指针;循环开始...

2020-03-04 12:55:15 265

原创 记一次redis内存翻倍问题排查

问题巡查redis时发现短时间内存翻倍。思路下载翻倍前后的rdb备份文件 使用rdb-tool 生成rdb对应的csv report 将csv处理后导入sqlite 使用sqlite查询哪些key发生了变化 根据key去业务代码中找相关代码查看rdb-tool介绍在获取到备份文件后,需要使用redis-rdb-tools生成内存快照。redis-rdb-tool...

2019-12-10 18:03:54 1487

原创 redis学习笔记之持久化

关于持久化Redis支持RDB和AOF两种持久化方式,redis为内存数据库,进程退出就会导致数据丢失,所以要将数据存储起来,当下次重启时即可加载之前持久化的文件,避免数据丢失。RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程。触发RDB持久化过程分为手动触发和自动触发。手动触发save阻塞当前Redis服务器。直到RDB过程完成为止,对于内存比较大的实例会造成长时间的阻塞,...

2019-12-05 10:48:49 115

原创 redis学习笔记之慢日志

两个配置slowlog-max-len1.慢查询日志是一个先进先出队列2.固定长度3.保存在内存内,不会持久化slowlog-log-slower-than1.慢查询阈值(单位:微秒)2.slowlog-log-slower-than=0,记录所有命令3.slowlog-log-slower-than<0,不记录所有命令配置方法1.默认值config get slowl...

2019-12-05 10:48:27 102

原创 mysql语句执行顺序

FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1ON: 对虚表VT1进行ON筛选,只有那些符合的行才会被记录在虚表VT2中。JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, rug from子句中包含两个以上的表的话,那么就会对上一个j...

2019-12-05 10:48:08 101

原创 使用sqlx要注意的点

1.使用query、queryRows返回的rows,应该使用rows.next(),扫描完每一行或者调用rows.close(),否则该链接永远不会被释放。The connection used by the Query remains active until either all rows are exhausted by the iteration via Next, or rows.C...

2019-12-05 10:47:55 696

原创 go module学习

GO Modules简介go module 是官方出的包管理工具,打破了传统的GOPATH模式,使用go module 你可以在任何位置建立你的项目。Quick Startgo mod init #当前模块下初始化 生成.mod 文件 go mod tidy #添加缺失的模块以及移除无用的模块 go mod verify #验证依赖项是否达到预期的目的 go mod v...

2019-11-27 15:05:00 527

原创 Index_merge

SELECT uid, target_uid, reward_value, reward_name, lottery_status, create_time FROM user_lottery_reward_logWHERE act_id = 18 AND (uid = 22381848 OR (target_uid = 22381848 AND lottery_status != 3))O...

2019-11-18 16:46:15 2181

原创 redis学习笔记之五种数据结构

zset简介zset:有序集合。有序集合中的元素可以排序。与列表使用索引下标不同,他给每一个元素设置一个分数作为排序的依据。比较常用命令及时间复杂度//返回结果为成功添加成员个数(可多次插入)zadd user:ranking 251 tom //添加用户tom及分数251 //zadd 的选项 nx xx ch incr //分别为member必须不存在,才能添加成功,用于添...

2019-10-08 19:34:46 120

原创 redis学习笔记之Geo

//geoadd 相同城市时 会更新数据 并返回 0geoadd cities:locations 116.28 39.55 beijing //插入经度 纬度 成员 插入成功返回插入个数geoadd cities:locations 116.28 39.55 beijing 1 2 city1 2 2 city2 //插入多个城市geodist key member1 member2 ...

2019-10-08 17:19:48 240

原创 学习go语法的练手

package mainimport ( "errors" "fmt" "time")/*go 优点开源编译型语言 运行告诉语法简洁并行处理封装内存管理 、数组安全*/var ( // 因式分解写法用于声明全局变量 a int b bool)//type 用法//定义结构体type name struct { n1 string n2 s...

2019-09-25 16:59:10 237

转载 详解select、poll、epoll(代码,底层数据结构)

学习的时候看到这篇文章很好收藏一下,结合其他资料对比着看食用效果更佳。https://blog.csdn.net/qq_35976351/article/details/85228002

2019-08-24 11:18:38 3656

原创 Mysql实战学习笔记四:锁

全局锁全局锁就是对整个数据库实例进行加锁。命令为Flush Tables with read lock。执行后整个库处于只读状态,数据增删改语句,数据定义语句(建表,修改表结构)和更新类事务提交都会被阻塞。全局锁常用于Myisam数据库的备份,加上只读锁之后备份。但是整个库只读存在风险。使用全局锁备份的风险如果在主库上备份,那么备份期间都不能执行更新操作,业务停止。如果在从库上备份,...

2019-07-13 16:43:07 157

原创 Mysql实战学习笔记三:索引

学完这篇 发现自己之前总结的还是挺好的,老师讲的差不多都见过。https://blog.csdn.net/Sunburst_Lf/article/details/85140992https://blog.csdn.net/Sunburst_Lf/article/details/84990215。哈希冲突解决办法查询user2的name 知道idcard在n之后追加链表,遍历链表直到找到u...

2019-07-11 15:26:54 149

原创 Mysql实战学习笔记二:一条更新语句是怎么执行的

Redo logRedolog是重做日志。使用了WAL技术,WAL的全称是write-head logging。该技术的关键点就是先写日志,再写磁盘。具体到Mysql里就是,当有一条记录需要更新的是时候,InnoDB会把记录先写到日志里,再更新内存,此时更新完成。然后当空闲的时候InnoDB引擎会将日志更新到磁盘里。除此之外,当日志文件写满的时候,InnoDB会暂时放下当前工作,将日志文件中的...

2019-07-10 09:38:31 160

原创 Mysql实战学习笔记一:一条SQL语句是怎么执行的

文章目录写在前面连接器建立连接,获取权限连接的维持长连接与短连接查询缓存写在前面之前总是零零散散学习mysql,觉得知识不成体系,用完就忘,于是订购了极客时间的Mysql实战笔记,总结学习一下。连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接建立连接,获取权限首先在查询之前要与mysql建立连接。此时客户端与服务器三次握手建立连接,开始进行用户认证。mysql -u r...

2019-07-08 11:32:43 211

原创 ubuntu mysq设置远程连接的一个坑

写在前面本文不是完全教程 只针对一个坑。如果你试过了改端口 防火墙 设置用户权限 flush 权限 重启mysql 服务还解决不了你的问题,那就往下看环境 Ubuntu 版本 mysql Ver 14.14 Distrib 5.7.26, for Linux (x86_64)有文章说要将配置文件 的bind-address 注释掉。我就进入我的my.cnf在/etc/mysql ...

2019-06-21 19:58:34 160

原创 linux工具命令总结杂杂杂

pwd当前工作目录tar -zxvf解压tar -zcvf 压缩文件名 要压缩文件1 要压缩文件2压缩上传文件rz输入sudo yum -y install lrzsz 安装输入rz 即可上传在scureCRT alt+P在scureCRT alt+P在原会话cd 到要上传的目录 然后在新出来的会话put (windows addr)source /etc/pro...

2019-06-21 16:46:37 120

原创 关于IO四种模型的理解

写在前面本文是个人总结,相关知识讲解请看下面的两篇博文强推!!!!!!https://blog.csdn.net/historyasamirror/article/details/5778378 五种io模型的解释https://www.jianshu.com/p/6a6845464770 这个例子很好 详解io多路复用首先要了解IO的过程。IO的第一个阶段:准备数据。对于network...

2019-06-20 21:42:18 452

原创 关于同步异步、阻塞非阻塞的一点个人理解

写在前面本文是作者参考了诸多文章后所写,可能理解上有错误,在此抛砖引玉。1.同步关于同步,我的理解是任务序列的顺序执行。比如现在有ABC三个任务,只有当A执行完的时候才能执行B,B执行完的时候才能执行C。2.异步异步与同步相对。当一个同步调用发出去之后,必须等待被调用者返回结果才能执行下一步。当一个异步调用发出去后,被调用者就立即返回了(比如IO操作中当调用read时,如果有数据收到,就...

2019-06-20 19:55:02 149

原创 c++纯虚函数与虚函数

纯虚函数纯虚函数形为virtual void run() = 0;纯虚函数在基类中是一定没有定义的 只会在基类中声明,并且要求子类一定要重写该函数不然会报错。(类似于java中的接口 ,当具体继承时要求重写所有接口中的方法)纯虚函数目的是为了实现“运行时多态“,实现同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的...

2019-06-10 19:33:19 4028 7

原创 MySQL之Float(浮点数)

比较浮点数浮点数不能用“=/==”来查找因为有两个原因1.浮点数之间的精度不同 (如单精度双精度)不同精度下相同数据在计算机内部的表示可能不一样。如 7.22用32位二进制是表示不下的。所以就不精确了。2.即使在精度相同的情况下,比较也可能会出问题。因为在运算过程中会将内存(或高速缓存)中的值加载到CPU浮点寄存器(80 bit扩展精度)中,然后再进入CPU浮点计算单元进行计算,计算结...

2019-06-04 11:40:04 7703

原创 软件体系结构复习笔记(部分)

部件支持的相互作用类型部件类型部件支持的相互作用类型模块过程调用、数据共享对象方法调用过滤器数据流过程消息传递、过程调用、通讯协议、同步数据文件读、写数据库模式、查询语言数据流风格之管道与过滤器使用场景:编译器连接件:管道。作用:把一个过滤器的输出传送到另一个过滤器作为输入。构件:过滤器。作用:从输入源读入一个数据流,将输...

2019-05-30 10:44:01 458

转载 sqlite资料合集(sqlite3编译,速度优化)

https://www.cnblogs.com/superbi/p/4980127.html // 编译文件http://blog.csdn.net/majiakun1/article/details/46607163 //提高插入速度https://www.cnblogs.com/djcsch2001/articles/3028086.html //一个例子可以参考参考/...

2019-05-23 21:40:31 303

原创 middlewareReview

消息中间件定义Message-oriented middleware (MOM) is software infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heter...

2019-05-21 16:51:15 709

原创 Mysql8.0的那些坑。

之前一直用的是5.7.切换过来有许多东西和以前不一样了。在此记录一下MySQL 配置文件my.ini的存放位置Mysql8.0 是在这个位置C:\ProgramData\MySQL\MySQL Server 8.0 (我使用的是默认配置)其中ProgramData 是隐藏文件夹。需要在资源管理器的查看选项中设置一下。Load Data File 的相关设定我使用load data f...

2019-04-25 16:30:06 1212

转载 Win/ubuntu 双系统,彻底删除ubuntu (方法全,带图解)

https://blog.csdn.net/qq_15192373/article/details/81536602备忘

2019-04-23 21:23:29 912

原创 MySQL参数调优。

自己的参数主要是为了提高写入速度。备份一下。[mysql]default-character-set=utf8[mysqld]#按主键顺序插入也会提高效率init_connect=‘SET autocommit=off’#为一次插入多条新记录的INSERT命令分配的缓存区长度(默认设置是8M)。#当我们使用如 insert … values(…),(…),(…)… 的方式进行批量插...

2019-04-20 11:46:08 422

原创 软件需求变更管理 个人总结

这是我查了相关资料后总结的,做个备忘。广大网友可以勉强参考下。可以下载下来然后旋转一下。

2019-04-16 17:01:49 712

原创 导入导出测试文档,测试点,等价类编写。

实验室的项目到了测试阶段,上学期学了软件工程导论,结合网上的例子,写了下面的测试文档。供广大网友借鉴一下。项目导入 测试类型 功能测试 模块名称 项目导出 用例描述 该用例用来测试在项目导出界面,用户能否正常导出,如果出错,是否能给出 出错提示。正常应提示导出成功。 ...

2019-04-05 13:49:56 736

原创 十进制转二进制(求0,1的个数)及求素数的快速方法

//十进制转换为二进制void intToBinary(int n){ //根据需要选择i的大小 for (int i = 7; i >= 0; i--) { if ((n >> i) & 1) cout << "*"; else cout << " "; }}...

2019-03-27 11:33:41 630

原创 linux 学习笔记之常用命令

常用命令cd 路径cd 中常用相关命令:~代表 当前用户home 目录. 代表 当前目录… 代表 当前目录的上一级目录(两个点,显示的有问题)&amp;quot;-&amp;quot;代表 当前目录之前的跳转目录(-)chmod改变文件权限chmod 八进制 文件名八进制对应 rwx rwx rwx 有就是1 无就是0 分别对应 文件拥有者权限 拥有者用户组权限 其他用户权限cp 源文件 目标文件-p 复制...

2019-01-17 11:25:09 175

原创 冒泡排序及其优化

优化策略一对应bubleSort1如果这一次比较没有发生交换就说明数组有序,就break优化策略二对应bubleSort2如果比较到某个位置之后没有发生交换,说明这个位置以后的排列是有序的,下次比较从第一个到这个位置即可。优化策略三对应bubleSort3双向比较,又名鸡尾酒排序。#include&lt;iostream&gt;using namespace std;temp...

2019-01-02 18:15:08 146

原创 MySQL学习笔记(五)索引之索引相关的数据结构

数据结构学习之前要先了解二叉搜索树,平衡二叉树(AVL树),B-树,B+树。下面这篇博客讲的很清楚,我就不多讲,只说下自己的理解。戳我学习二叉搜索树左结点比根节点小,右结点比根节点大。所有非叶子结点最多有两个儿子,每个节点只存一个key如果所有非叶子结点的左右子树的结点数目均保持差不多(平衡),那么搜索性能逼近二分查找;但它比连续内存空间的二分查找的优点是,改变结构(插入与删除结点...

2018-12-20 23:12:15 242

原创 MySQL优化方案

只返回自己需要的列(不使用SELECT *),使用LIMIT。原因:只返回自己需要的列,使用LIMIT可以减少服务器到客户端的传输数据量

2018-12-18 16:43:24 182

原创 MySQL学习笔记(四) 视图 触发器 数据库各种备份复制方法

视图视图已经定义便存储在数据库中,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改、删除。当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化;同时,若基本表的数据发生变化,则这种变化也可以自动的反映到视图中。优点简单化看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图...

2018-12-18 15:31:47 856

空空如也

空空如也

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

TA关注的人

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