自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 事务消息及本地消息事务表

什么是MQ?1.1 为什么要用MQ?1.2 场景一1.3 场景二事务消息2.1 本地消息事务表2.2 RocketMQ事务消息1. 什么是MQ?MQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的..

2022-03-06 21:41:11 2976

原创 golang小问题记录

golang小问题记录

2022-03-02 15:41:12 321

转载 Redis列表list底层原理 - 转载

redis列表list底层原理

2022-03-02 15:32:57 763

转载 golang gc问题

Golang GC的背景golang是基于garbage collection的语言,这是它的设计原则。作为一个有垃圾回收器的语言,gc与程序交互时候的效率会影响到整个程序的运行效率。通常程序本身的内存管理会影响gc和程序之间的效率,甚至造成性能瓶颈。常见的 GC 模式引用计数(reference counting)每个对象维护一个引用计数器,当引用该对象的对象被销毁或者更新的时候,被引用对象的引用计数器自动减 1,当被应用的对象被创建,或者赋值给其他对象时,引用 +1,引用为 0 的时候回

2022-03-02 15:19:59 190

转载 分布式事务解决方案

分布式事务,tcc,两阶段提交,事务消息,本地消息表

2021-12-12 00:34:21 98

原创 递归,分治,回溯

递归模板func recursion(level int, param1, param2,...){ //recursion terminator 递归终止条件 if level > MAX_LEVEL{ process_result return } //process logic in current level 处理当前层逻辑 process(level, data...) //drill down 下探到下一层

2020-08-30 22:26:41 245

原创 缓存(redis)和数据库(mysql)一致性解决方案

首先, 如果对一致性要求不高直接读取redis缓存即可如果对一致性要求较高则直接读取数据库其他如 先删缓存后更新数据库一进程A删除缓存后还未更新数据库,另一进程B过来读取数据库,进程A更新数据库成功,并写入缓存,B进程随后更新缓存这种情况可以采用延迟双删del(key);update(data);sleep(500);del(key);具体的步骤就是:1)先删除缓存2)再写数据库3)休眠500毫秒4)再次删除缓存再如先写了库,在删除缓存前,写库的线程宕机了,没有删除掉缓存,

2020-08-26 16:21:01 217

原创 二叉树的前中后序遍历及N叉树的前后序遍历

leetcode原题94. 二叉树的中序遍历给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?递归比较简单,就略过了,直接上迭代代码,这里给出golang的代码/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode *

2020-08-24 16:52:05 594

原创 二叉树,哈希表,堆

二叉树简单地理解,满足以下两个条件的树就是二叉树:本身是有序树;树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;例如,图 1a) 就是一棵二叉树,而图 1b) 则不是。图 1 二叉树示意图二叉树的性质经过前人的总结,二叉树具有以下几个性质:二叉树中,第 i 层最多有 2i-1 个结点。如果二叉树的深度为 K,那么此二叉树最多有 2K-1 个结点。二叉树中,终端结点数(叶子结点数)为 n0,度为 2 的结点数为 n2,则 n0=n2+1。性质 3 的计算方法为:

2020-08-24 11:45:34 289

原创 常用数据结构及排序算法的复杂度分析

大O表达式 - Big O notationO(1)O(1)O(1): Constant Complexity 常量复杂度O(logn)O(logn)O(logn): Logarithmic Complexity 对数复杂度O(n)O(n)O(n): Linear Complexity 线性复杂度O(n2)O(n^2)O(n2): N Square Complexity 平方O(n3)O(n^3)O(n3): N Cubic Complexity 立方O(2n)O(2^n)O(2n): Exp

2020-08-24 10:31:12 119

原创 数组,链表,跳表

1. 数组,链表,跳表数组:在内存中开辟连续的内存地址,存储元素链表:当前Node对象存储当前节点值与下一节点内存地址调表:带有调表索引的链表,只能用于元素有序的情况下,用来取代平衡树二分查找左append右append查询插入删除数组O(1)O(1)O(1)O(n)O(n)普通链表O(1)O(1)O(n)O(1)O(1)调表O(1)O(1)O(log n)O(log n)O(log n)空间复杂度上,数组最少,普通链表第二

2020-08-24 10:29:11 135

转载 select、poll、epoll之间的区别(搜狗面试)

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态, 但是它没有最大连接数的限制,原因是它是基于链表来存储的.

2020-08-24 09:27:21 133

原创 新五年级数学

第三讲作业答案第四讲课程视频21暑假 五年级B第四讲 课前预习移项时要注意变号,同学们千万不要搞错了21暑假 五年级B第四讲 例1,221暑假 五年级B第四讲 例3,4@所有人5年级暑假第4讲 方程问题进阶 课后反馈 ????各位家长大家好???? 今天是我们五年级暑假第4次课,我们一起学习了第4讲内容【方程问题进阶】,以下是我们本节课的课后反馈 【课堂目标】✅掌握一元一次方程的解法。✅熟练计算带括号的方程。✅掌握复杂方程的解法。 【课堂重点】✅去括号、移项与化简

2020-08-21 14:53:03 344

转载 php数据结构运用(树)

树树是一种数据结构,它是由n个有限节点组成一个具有层次关系的集合树的特点:每个节点有零个或多个子节点没有父节点的节点称为根节点每一个非根节点有且只有一个父节点除了根节点外,每个子节点可以分为多个不相交的子树二叉树概念二叉树是树的特殊一种,具有如下特点:每个结点最多有两颗子树,结点的度最大为2左子树和右子树是有顺序的,次序不能颠倒即使某结点只有一个子树,也要区分左右子树二叉树是一种有用的折中方案,既有链表的好处,也有数组的好

2020-07-29 21:04:06 583

原创 postgres LIMIT 1后COUNT(*)给出1个以上的结果

SELECT COUNT(*) as sum FROM data WHERE aa < 100 LIMIT 1;sum--------1160(1 row)我预期结果为1或0,但结果为1160原因:Postgres读取所有行 FROM data WHERE aa < 100Postgres然后将count(*)它们Postgres然后LIMIT是 count...

2020-04-28 16:15:23 864

转载 Postgresql中to_date()函数使用问题

原文连接:https://www.jianshu.com/p/3de6590851b6一、问题错误: 函数 to_date(timestamp without time zone, unknown) 不存在 Hint: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.原来的使用方式是:to_date(createddate,'YYYY-MM-DD')二、解决方式:方法...

2020-04-21 16:33:30 10588

转载 Swoole多进程

作者:JunChow520链接:https://www.jianshu.com/p/3cf07098fe8bSwoole Server和Nginx服务一样,采用了多进程的架构模型。相对比多线程模型,多进程结构管理方便,不存在线程冲突和线程安全问题,代码编写相对简单,缺点在于进程和进程之间的通信没有多线程模型直接,存在一定的损耗。另外,PHP开发依赖的PHP-FPM也是多进程模型,因此为了减少学...

2020-04-17 16:42:54 152

原创 从redis列表中一次pop出多个

要解决这个问题,我们就需要使用 Redis 的pipeline功能,它可以把多条命令放在一个网络请求中发送到服务器,并默认在一个事务中执行这些命令。一个事务是不会被打断的,从事务开始然后执行里面的多个命令到结束的整个过程,可以看做一个原子操作。pipeline的使用方法如下: $pipe = $redis->multi(Redis::PIPELINE); $pipe->lRang...

2020-04-17 14:25:14 7200

原创 Qt.rgba颜色无法正常显示

Qt.rgba颜色无法正常显示这里记录一下正确写法写成Qt.rgba(255,246,238,1)是没用的要写成Qt.rgba(255/255,246/255,238/255,1)

2020-03-17 10:36:32 2294

原创 docker安装yaf扩展并发布

docker安装yaf扩展参考 Docker 安装 PHP+nginx 一文观看官方docker镜像安装扩展已有工具//进入php容器docker exec -it myphp /bin/bash//切换安装工具目录cd /usr/local/bin //安装mysql扩展./docker-php-ext-install pdo_mysql //安装yaf扩展./docke...

2020-03-14 09:58:31 1160

原创 Docker 安装 PHP+nginx

1. docker安装php1.1 安装php镜像1.1.1 docker pull php查找Docker Hub上的php镜像这里我们拉取官方的镜像,标签为7.3-fpmdocker pull php:7.3-fpm等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.3-fpm的镜像。1.2 php部署启动 PHP:(如果没有相应路径 需要...

2020-03-14 09:46:08 913

原创 mysql order by field 实现以in里面的字段值进行排序

如题SELECT * FROM XX WHERE id IN (1,2,3,4) ORDER BY FIELD(id, 1,2,3,4)以上然后记录一下这个奇葩问题开发服务器上的自建mysql服务端然后开发服上的代码执行效果是不按in的列表顺序,是重新排序的本地开发连接的也是开发上面的mysql服务端,但确是没有重新排序,按照in里面的列表顺序返回我把sql语句拿出来在命令行跑了一...

2019-12-26 17:17:08 789

原创 代码灵异事件 -- php使用redis的hgetall方法出现的怪问题

首先浏览器请求报504,然后Postman请求无返回,长这样然后代码中打印出如下结果:最开始排查的时候考虑是不是内存问题 后来加大内存后还是出现同样的问题如上图可以看出 $hash变量是已经指向了$result但是改变 $hash或者 $result的变量名称后还是有问题后来发现在496行后给$hash重新赋值 [1] 就没有这样的问题了那应该就是hGetAll方法的问题了 ...

2019-12-24 09:20:21 1238 2

原创 mysql中sum、avg、max、min、count均会忽略null值

mysql中sum、avg、max、min、count均会忽略null值

2019-12-02 21:10:29 1538

转载 php抽象类和接口的区别

引言:这是一个面试经常被问到的问题,也是一个经典问题。我们尽量引用官方权威的说明或者经过实验来证明本文所说的内容准确性。抽象类官方描述请查看文档,下面是官方描述的梳理版本:定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。(抽象类可以没有抽象方法,但是抽象类依然不能被实例化)被定义为抽象的方法只是声明了其调用方式(参数),...

2019-10-29 09:32:26 184

转载 linux 信号列表和基本使用

我们运行如下命令,可看到Linux支持的信号列表:$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV ...

2019-10-21 16:32:42 104

原创 整理mongoDB的常用基本操作

安装mongodbhttps://www.mongodb.com/download-center#community安装完成后创建数据目录在你的安装目录里创建 xxx/mongodb/data/db命令行运行在安装目录下打开命令行,执行D:\mongodb\bin\mongod --dbpath D:\mongodb\data\db如果执行成功,会输出如下信息:2015-09-25...

2019-10-17 14:17:55 276

原创 nginx响应超时,出现504 gateway time-out

nginx响应超时的解决办法最近接手一个新项目,但是其中一个接口却出了问题网页提示 504 gateway time-out也没细想,直接更改nginx配置http{ fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; fastcgi_buffer_size 128k...

2019-10-09 17:12:27 3694

原创 用php实现一个简单的守护进程,多进程

首先我们要知道创建守护进程的五个步骤:创建子进程,终止父进程在子进程中创建新会话改变工作目录(默认继承了父进程的当前工作目录)重设文件创建掩码(默认继承了父进程的文件创建掩码)关闭文件描述符(默认继承了父进程打开了的文件)然后直接上代码<?phpfunction daemon() { // fork一个子进程 $pid = pcntl_fork();...

2019-09-21 10:58:49 224

原创 mysql union后group by 实现先排序

mysql union后group by 实现先排序公司让写一个报表,有如下sql:SELECT id,time FROM ( SELECT aid AS id,atime AS time FROM a UNION ALL SELECT bid AS id,btime AS time FROM b) AS a然后查处如下记录:[ { "id":2, "time":10...

2019-09-18 16:33:59 4802

空空如也

空空如也

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

TA关注的人

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