自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 redis-主从复制

redis为了持久化提高可靠性,提供了主从复制和集群。

2022-06-28 12:16:29 201 1

原创 Redis---持久化

文章目录一、aof(append only file)1.概念:2.配置3.恢复4.缺点二、使用步骤1.引入库2.读入数据总结一、aof(append only file)1.概念:aof日志存储的是Redis服务器的顺序指令序列,aof日志只记录对内存修改的指令记录。按照redis的协议存储,例如:命令set key val 存为*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$3\r\nval\r\n2.配置配置如下:##开启aofappendonly yesappend

2022-02-24 22:04:12 604

原创 mysql索引

文章目录一、概念二、索引实现1.存储2.页3.B+树4.聚集索引5.辅助索引6.最左匹配原则7.覆盖索引三、索引构建原则1. 索引失效2. 索引原则一、概念概念表达式主键索引非空唯一索引,一个只有一个主键索引;innodb中,主键索引的B+树包含表数据信息PRIMARY KEY(key)唯一索引不可以出现相同的值,可以有NULL值UNIQUE(key)普通索引允许出现相同的索引内容INDEX(key) OR KEY(key[,…])组合索引对表上的

2022-01-04 20:40:31 459

原创 mysql事务

文章目录前言一、事务控制语句二、ACID特性1.原子性(Atomicity)2.一致性(Consistency)3.隔离性(Isolation)4.持久性(Durability)二、事务并发异常1.脏读2.不可重复读3.幻读4.小结三、其他细节1.锁2.MVCC3.redo log3.undo log前言目的:事务将数据库从一种一致性状态转换为另一种一致性状态;特征:在数据库提交事务,可以确保要么所有修改已经保存,要么所有修改都不保存;一、事务控制语句START TRANSACTION | BE

2022-01-04 16:51:03 589

原创 C/C++ 处理coredump文件

文章目录前言一、准备二、命令:objcopy三、调试core文件前言线上项目在宕机时会产生core文件,外网没有源码,通过符号表可以看到程序崩溃在哪个文件哪行。一、准备先写一个可以宕机的代码#include <iostream>#include <vector>void testcore(){ std::vector<int> a; std::vector<int> b; a[1] = 0;

2021-12-23 16:44:20 885

原创 C++循环缓存实现与优化

目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pa

2021-11-23 22:35:29 1321

原创 程序员面试金典---5.8 绘制直线(leetcode)

目录题目:绘制直线一、思路二、解法1.单独处理头尾法题目:绘制直线绘制直线。有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里。屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽度推算得出。请实现一个函数,绘制从点(x1x_1x1​, y)到点(x2x_2x2​, y)的水平线。给出数组的长度 length,宽度 w(以比特为单位)、直线开始位置 x1x_1x1​(比特为单位)、直线结束位置 x2x_2x2​(比特为单位)、直线

2021-11-21 14:51:49 503

原创 程序员面试金典---5.5 调试

目录题目:调试一、思路1.(A&B)== 0 含义2.相比n,n-1长什么样3.那么,(n&(n−1))==0(n \& (n-1)) == 0(n&(n−1))==0 究竟表示什么?题目:调试解释代码((n & (n-1)) == 0)的具体含义?一、思路我们可以由外而内来解决这个问题。1.(A&B)== 0 含义(A&B)==0(A\&B)==0(A&B)==0 的含义是,A和B二进制表示的同一位置绝不会同时为1。因此,

2021-11-18 10:01:42 200

原创 程序员面试金典---5.4 下一个数

目录题目:下一个数一、思路二、解法1.位操作法:题目:下一个数给定一个正整数,找出与其二进制表达式中 1 的个数相同且大小最接近的那两个数(一个略大,一个略小)(比该数大且最接近的数 和 比该数小且最接近的数)一、思路1.蛮力法:在n的二进制表示中,数出1的个数,然后增加或减小,直至找到1的个数相同的数字。2.位操作法:取得后一个较大的数现在给定一个数n和两个位置i和j,假设将位i从1翻转为0,位j从0翻转成1。若i>j,n就会减小;若i<j,n则会变大。结论:若将某个0翻

2021-11-17 21:53:15 346

原创 程序员面试金典---5.2二进制转字符串

目录题目:二进制转字符串一、思路二、解法1.乘2法题目:二进制转字符串给定一个介于 0 和 1 之间的实数(如 0.72),类型为 double,打印它的二进制表达式。如果该数字无法精确地用 32 位以内的二进制表示,则打印“ERROR”。一、思路用X2X_2X2​和X10X_{10}X10​来表示X是二进制还是十进制。非整数用二进制表示是与十进制相仿,二进制数0.1012表示如下0.1012=1∗1/21+0∗1/22+1∗1/230.101_2 = 1*1/2^1 + 0*1/2^2 + 1*

2021-11-15 12:26:30 65

原创 程序员面试金典 --- 4.12求和路径

目录题目:求和路径一、思路二、解法1.蛮力法2.优化解法1题目:求和路径给定一棵二叉树,其中每个节点都含有一个整数数量(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径(求路径数量!)。注意,路径不一定非得从二叉树得根节点或叶节点开始或结束,但是某方向必须向下(只能从父节点指向子节点方向)。一、思路1.先用蛮力法解决,只需要查看所有可能得路径。遍历每个节点,用递归法尝试所有向下的路径。并随着递归的进行跟踪路径的和。每当发现路径和等于目标和,答案就+1;用时O(NlogN) 每

2021-11-11 17:44:39 297

原创 程序员面试金典 --- 4.11随机节点

目录题目:随机节点一、思路二、解法1.选项32.选项4题目:随机节点你现在要从头开始实现一个二叉树类,该类除了插入(insert)、查找 (find)和删除(delete)方法外,需要实现 getRandomNode()方法用于返回树中的任意节点。该方法应该以相同的概率选择任意的节点。设计并实现 getRandomNode 方法并解释如何实现其他方法。一、思路需要注意到此题使用了一种十分有趣的描述方式:面试官并不是简单地说:“请设计一个算法,从二叉树中返回一个随机节点。”此题要求我们从零开始实

2021-11-10 16:53:39 607

原创 程序员面试金典 --- 4.7编译顺序

目录题目:编译顺序一、思路二、解法1.迭代法2.深度优先搜索法题目:编译顺序给你一个系列的项目project和一系列依赖关系(依赖关系dependencies为一个链表,其中每一个元素为两个项目的编组,且第二项目依赖于第一个项目)。所有项目的依赖项必须在该项目被编译前编译。请找出可以使得所有项目顺利编译的顺序。如果没有合法的编译顺序,返回错误。示例:输入:projects:a,b,c,d,e,fdependencies:(a,b),(f,b),(b,d),(f,a),(d,c)输出:f,e

2021-11-04 17:44:27 204

原创 Reids---基础数据结构及编码

文章目录前言一、Value的编码StringListhashsetzset二、使用步骤1.引入库2.读入数据总结前言Redis 是Remote Dictionary Service的简称;也是远程字典服务Redis 是内存数据库,KV数据库,数据结构数据库命令查看网址一、Value的编码Redis查找方式: key经过几次hash后得到数组中的位置,从而找到value,value中有不同的编码格式,下面将逐一介绍:String说明:字符数组,动态,加倍扩容(超过1M只扩1M),最

2021-07-20 11:54:55 72

原创 epoll---Rector模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-07-13 11:34:04 134

原创 IO多路复用---epoll的使用

文章目录前言一、用法前言select:select(ionum,read,wirte,error,timeout) select拿着read、write、error的集合 timeout时间内询问有没有io准备好(可读可写)poll:和select类似,但是把三个集合变为了一个集合epoll:io准备好后,内核通知epoll,epoll将io就绪的节点加到epoll的就绪队列里,epoll_wait从就绪队列中取io就绪的节点。提示:以下是本篇文章正文内容,下面案例可供参考一、用法#.

2021-07-09 11:26:04 121

原创 设计模式---单例模式

文章目录一、设计原则二、单例模式1.定义2.代码总结一、设计原则依赖倒置原则高层模块不应该依赖底层模块,二者都应该依赖抽象抽象不应该依赖具体实现,具体实现应该依赖与抽象开放封闭原则一个类应该对扩展开放,对修改关闭面向接口编程不将变量类型声明为某个特定的具体类,而是声明为某个接口客户程序无需获知对象的具体类型,只需要知道对象所具有的接口减少系统中各部分的依赖关系,从而实现“高内聚,低耦合”的设计方案封装变化点将稳定点和变化点分离,扩展修改变化点,让稳定点与变化点

2021-07-08 14:57:43 107

原创 解决缓存穿透问题

文章目录前言一、STL::SET和STL::MAP?二、STL::unordered_map?三、布隆过滤器解决前言缓存穿透:某个数据redis不存,mysql也不存在,而且一直尝试读,数据最终压力依然堆积在mysql,可能造成mysql不堪重负而崩溃读取步骤:1.先访问redis,如果存在,直接返回,不存在走22.访问mysql,如果不存在,直接返回,如存在走33.将mysql存在的key写回redis一、STL::SET和STL::MAP?C++标准库(STL)中的set和map.

2021-07-07 11:21:42 67

原创 B树---删除节点

文章目录数据结构一、删除节点二、合并数据结构typedef int KEY_VALUE;typedef struct _btree_node{ KEY_VALUE *keys;// 关键字数组 struct _btree_node **childrens; //指针数组 叶子节点 int num;//关键字数量 int leaf;// 是否为叶子节点}btree_node;typedef struct _btree{ btree_node *root; int t;} btr

2021-07-06 09:58:05 433

原创 B树---插入调整

文章目录前言一、性质二、插入1.从根节点插入(整棵树只有根节点)2.从子节点插入3.分裂(插入时 子节点的num满了 需要分裂)前言内存与磁盘区别1.访问内存块,访问磁盘慢2.内存断电以后数据消失,磁盘持久存储为什么要用B树?存储在磁盘上的数据,想要加载到内存需要寻址,这样是比较慢的,每次大约需要10ms,要想减少这个访问磁盘次数 需要一个层级比较低的数据结构。B树层高低,每个节点对应一个btree节点。一、性质一颗M阶B树T,满足以下条件每个节点至多拥有M课子树根结点至少拥有两

2021-07-05 11:12:04 170

原创 红黑树----删除调整

文章目录前言一、情况1.(x为左子树)x的兄弟节点是红色(此时被删除节点的父节点和x的兄弟节点的子节点都是黑色)2.(x为右子树)x的兄弟节点是红色(此时被删除节点的父节点和x的兄弟节点的子节点都是黑色)3.(x为左子树)被删除点是黑+黑节点,x的兄弟节点是黑色,x的兄弟节点的两个孩子都是黑色4.(x为右子树)被删除点是黑+黑节点,x的兄弟节点是黑色,x的兄弟节点的两个孩子都是黑色5.(x为左子树)x是黑+黑节点,被删节点的兄弟节点是黑色,x的兄弟节点的右孩子是黑色6.(x为右子树)被删除点是黑+黑节点,x

2021-07-04 12:38:49 205

原创 红黑树---插入调整

目录前言一、情况情况1情况2情况3二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言只有当插入节点是红色,才需要调整一、情况情况1当前节点的

2021-07-02 10:30:07 117

原创 算法基础---链表

目录数据结构一、初始化二、算法技巧--快慢指针1.判断链表是否有环?2.判断链表是否有公共点?3.获得两个相交链表的交点?4.如何找到倒数第n个节点 ?5.链表翻转?数据结构struct ListNode{ int value; struct ListNode *next;}一、初始化构造普通链表struct ListNode* init_list(int n){ //构造 普通链表 int i = 0; struct ListNode *head, *p

2021-06-30 16:57:52 51

原创 算法基础---KMP模式匹配

目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言原理:提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warnin

2021-06-29 17:43:00 58

原创 算法基础---排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档排序算法前言一、希尔排序二、快速排序三、总结前言希尔排序、快速排序一、希尔排序原理:先分组 然后再分组中带插入排序代码如下:int shell_sort(int* data, int length){ int gap = 0; int i = 0, j = 0; for(gap = length / 2;gap >= 1;gap /= 2) {//分组的次数 for(i = gap;

2021-06-29 17:13:35 56

空空如也

空空如也

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

TA关注的人

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