- 博客(28)
- 收藏
- 关注
原创 kafka 延迟队列
最近在看Kafka延迟队列的实现方式,发现大部分讲的都很片面,都是时间轮相关的东西,搞得一知半解的,最终根据自己的理解,设计了一套延迟队列,和大家一起讨论一下,服务流程如下如图所示,所有的消息进来之后,都会被分配到delay队列中,然后delay队列消费消息满足时间要求后再发送到业务队列中,这样做的目的是避免消息阻塞,如果我们没有delay队列,所有消息都在业务队列中,那必然会产生一定的堆积,因为这个队列本身要做的事情太多,delay队列就是为了分担他的压力这里说下为什么有三个delay队.
2021-11-16 16:29:01 6051
原创 php面试总结,需要自取
算法 二分查找 归并排序 快排 回文数 整数反转 最短左前缀 LRU算法实现 两个有序数组合并为一个有序数组 求数组中子数组的最大和 数组中两数相加等于指定数的下标 BFSPHP 垃圾回收机制,循环引用问题如何解决的 常用的魔术方法 自动加载函数有哪些 数据框架的生命周期 常用的设计模式有哪些 装饰模式的优缺点 设计模式的作用是什么程序设计 高并发场...
2021-11-04 17:25:33 232
原创 设计模式 - 策略模式应用
策略模式简介意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。如何解决:将这些算法封装成一个一个的类,任意地替换。关键代码:实现同一个接口。优点:算法可以自由切换。避免使用多重条件判断。扩展性良好。缺点:策略类会增多。所有策略类都需要对外暴露。使用场景:如果在一个系统里面有许多类,它们之间的区别
2020-12-09 20:01:40 182
原创 MAC 安装 brew 出错解决
mac 安装下载一些东西的时候很多时候要依赖与 HomeBrew 这个工具这个工具是需要安装的,不是自带的在网上找到的方法都是直接执行下面这个命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"我这边执行过程中出现了错误:error信息:RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, e..
2020-07-03 19:56:47 536
原创 PHP 二维数组多字段排序
public static function sortArrByManyField(){ $args = func_get_args(); // 获取函数的参数的数组 if(empty($args)){ return null; } $arr = array_shift($args); if(!...
2020-03-02 14:19:18 244
原创 strtotime的一些坑
一、抛出问题当今天是7-31号的时候,下面这行代码会输出什么? echo date("Y-m-d",strtotime("-1 month")); 正常来说应该是2019-06-30号才对,但实际上却是2019-07-01二、原来如此一开始很困惑,但是看了鸟哥的讲解后就释然了 先做-1 month, 那么当前是07-31, 减去一以后就是06-31...
2019-08-20 14:03:04 536
原创 第三方平台代小程序实现推送
最近公司在开发小程序第三方平台,需要实现推送功能,如下图来记录一下首先,推送需要formid、openid、template_id formid是用户在小程序内, 点击时通过特定方法获取(具体方法再次不做阐述),openid就是每个用户的唯一标识,template_id 就是推送时的模板ID,前两个都没什么问题, 但是模板ID就比较复杂了,废话不多说了看下面~~通过这个接口...
2019-01-05 15:01:20 2216
原创 laravel in 查询的使用
今天遇到多条件搜索,其中需要用到in查询,但是laravel不支持 [ 'type', 'in', '1,2,3'] 这样的写法经过一波百度,也没发现什么好的方法。其中一种方法是:$where = function ($query) {$query->whereIn('id', [1,2])->orWhere('d_id', '=', '83');}这样确实可以解决,是...
2018-08-21 14:22:59 9536 2
原创 redis 队列内容批量获取
redis队列的批量获取一直以来让我很困惑,今天又遇到了同样的问题,经过几番波折,终于找到了一个方法。分享一下只需要redis自带的两个方法(lrange, ltrim)lrange可以获取队列中某一段的数据,例如获取队列中1-10的数据,lrange key 1 10ltrim 可以保留所选区间的所有值,也就是可以删除所选区间之外的所有值, 例如 ltrim key 5 10 就会...
2018-08-09 19:44:42 28540 3
原创 windows 下mysql主从搭建 io 线程出现no
首先,看一下自己网络是否通畅。 其次,主库的bin-log 日志的文件名 以及pos位置。 然后,检查连接主库的用户名与密码是否出错。 如果都没有问题。 删除从库data目录下,master.info 文件以及所有以relay-bin 和 bin-log文件停止从库,从新连接,开启从库。OK!
2017-10-13 20:24:06 1490
原创 windows 下自己可以ping通127.0.0.1 ping不通自己本地ip
我得原因是因为我电脑连上了wifi,所以ping本地ip 出现问题,断掉wifi就好
2017-10-13 20:21:44 9712
原创 php 常用函数
=====================================常用数组函数=============================isset 判断变量存在empty 判断变量是否为空implode 把数组转化为字符串explode 把字符串转化为数组in_array 判断某个字符是否存在某个数组中array_rand 随机取出一个或多个单元array
2017-09-19 15:14:14 294
原创 php 变量得作用域
=====================================变量得作用域================================1. 在函数内部定义一个变量,为局部变量,只能在函数内部使用此变量2.想要在函数内使用全局变量,需要在函数内用global 声明.3.静态全局变量每次只初始化一次,为了防止在源文件之外被调用。4.static局部变量只被初
2017-09-19 14:52:13 300
原创 php cookie 与 session
=============================================COOKIE SESSION ==========================================1.COOKIE 存在于客户端。SESSION 存在于服务端。2.COOKIE 默认存储大小为 4kb. 一般设置COOKIE 不会超过 20个,具体看需求。3.SESSION
2017-09-19 14:31:52 303
原创 php get 与 post得区别
==========================GET 与 POST 得区别===========================================1.get为明文传输,在url地址栏中可见。post传输内容不可见,在header头中传输。2.get因为是明文传输,所以没有POST安全3.get得传输内容受url地址栏限制,最大传输内容为2kb,post默
2017-09-19 14:20:17 755
原创 php 接口与抽象类 总结
一、抽象类与接口。 1.用abstract 定义得类为抽象类。 用interface 定义得类为接口类2.接口和抽象类都不能被直接实例化。3.抽象类是用来被继承得。4.接口是特殊得抽象类5.一个类可以继承多个接口,但只能继承一个抽象类。6.接口中得方法与属性都是公共得7.接口中得方法都是抽象方法,抽象方法没有方法体。
2017-09-19 14:08:40 343
转载 PHP 死锁问题分析
[导读] 对于死锁的问题,人们往往想到出现一些关于访问很缓慢,有白页现象,要是测试环境(我就真实遇到测试环境有本文谈及一样的问题)你也就重启一下PHP的php-fpm进程发现又好了背景:对于死锁的问题,人们往往想到出现一些关于访问很缓慢,有白页现象,要是测试环境(我就真实遇到测试环境有本文谈及一样的问题)你也就重启一下PHP的php-fpm进程发现又好了,隔一段时间又出类似的问题,
2017-08-28 10:10:10 684
原创 php 实现验证码
[导读] 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。session_start(); $image = imagecreatetruecolor(100, 30); //1>设置验证码图片大小的函数 //5>设置验证码颜色 imagecolorallocate(int im, int red, int
2017-08-27 20:46:39 249 3
转载 PHP编程效率的20个要点
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 2、
2017-08-27 20:33:44 179
原创 memcache与redis区别
1.架构方式:c/s 客户端和服务器 存储方式:)1.memcache存储数据的位置:内存中。)2.redis可以存储到内存中,可以把数据同步 到硬盘中,达到数据的存储持久化。 存储类型 )1.memcache存储数据类型的格式:键值对。没有行和列的概念 )2.redis:数据存储是,键值对存储,只不过存储的值的类型比较丰富,有五种类型,string(字符串),ha
2017-08-20 16:28:36 296
原创 memcache 雪崩现象
1、什么是memcache雪崩 缓存雪崩一般是由某个缓存节点失效,导致其他节点的缓存命中率下降, 缓存中缺失的数据(memcache经典场景,当有一个客户端的服务请求过来的时候,首先去查 memcache,memcache里面是否缓存过了这个数据,如果没有这个数据,我们就去数据库查询,如果有这个数据,我们就从memcache里面取出来,然后给它返回到客户端,这是一个经典的查询过程,
2017-08-20 16:18:30 437
原创 php安装扩展--windows和linux下安装
Windows:1、先看下自己PHP的编译版本 Architecture : x86 编译系统架构:X86代表32位系统,X64代表64位系统 Thread Safety : enabled 线程安全: enabled 代表线程安全 disabled 非线程安全 看下自己p
2017-08-20 15:56:14 312
原创 加权随机数
写一个函数,可以根据各个元素的权重返回随机数 (加权随机数) function(Array_A,n) Array_A:是一个数组,表示各个元素出现的概率, n:为需要返回的元素个数 如果n=1,则返回一个元素(Array_A中的key) , n=2则返回两个元素(Array_A中的key)示例:function({20,50,30},1): 返回长
2017-08-20 15:53:33 1298
原创 关于微信公众号开发上传永久素材时,提示40015
1、关于上传永久素材时,提示40015. 问题在于php 5.6之后CURL不允许使用 @上传问题,可以使用 new CURLFILE('文件代替')或者 curl_create_file代替 下面附上一段代码 <?phpheader('content-type:text/html;charset=utf-8');error_reporting...
2017-08-20 15:51:38 2178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人