自定义博客皮肤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 打交道。数据结构 String、Hash、List、Set 和 ZSet 都是常用的数据类型。对于使用场景,我们可以滔滔不绝地说很多,但是我们从来就没有关心过它们的底层实现,到底它们的数据是怎么存储的,代码是怎么实现的,使用上有什么值得注意的地方。带着这些疑问,我去查看了相关的书籍,对于实现有了大致的认识。希望你看完后也有所收获。先统一名词:我们常用的 String、Hash、List、Set 和 ZSet 叫做对象(Object)。

2023-10-19 19:57:52 864

原创 mac php8 安装xdebug模块失败

usr/local/Cellar/php/8.0.10 下的 pecl 指向了 /usr/local/lib/php/pecl。而 /usr/local/lib/php 下没有 pecl 目录, 所以只要新建目录。mkdir /usr/local/lib/php/pecl 即可。php使用brew安装,想着可以直接使用以下方式安装,还是美滋滋的。安装 xdebug 模块,官网有详细介绍。经过google,发现了问题。但是安装途中发生了错误。

2023-05-07 17:02:44 662

原创 go简洁架构实践

虽然分层的名称,概念各不相同,但是大家都有意将业务代码与外部依赖隔离开,并且依赖方向是向内的,只要把握这两条原则,其他就可以自己根据业务需要各自实现了Golang 简洁架构实战。

2022-09-04 14:36:21 809

原创 grpc SetHeader 和 SetTrailer 的区别和联系

问题在使用grpc过程中发现,发送 matedata 有两种方式 一种是通过 grpc.SendHeader(ctx,md),另外一种是 grpc.SetTrailer(ctx,md)疑问 既然可以通过 SendHeader 发送元数据,为什么还需要通过 SetTrailer 发送呢?这两个的区别和联系是什么呢?过程首先,我们需要知道grpc通信模式分为四种一元RPC模式服务器流RPC模式客户端流RPC模式双向流RPC模式然后,我们看 一元RPC模式 和 双向流RPC模式 的区别一

2021-03-25 23:48:13 1311

原创 laravel redis 使用的一个坑 (明明写入成功,却无法获取回来)

废话不多说,先上代码class TestCommand extends Command{ protected $signature = 'test'; public function __construct() { parent::__construct(); } public function handle() { $redis = Redis::connection('WeChatApp'); .

2020-12-28 18:54:21 1911

原创 全网最详细的gin源码解析

介绍gin 框架基于 httprouter 实现最重要的路由模块,采用类似字典树一样的数据结构来存储路由与handle方法的映射.也是框架高性能的原因,有兴趣的同学可以自行查阅本文提供 在线思维导图 搭配文章看事半功倍Engine 容器对象,整个框架的基础Engine.trees 负责存储路由和handle方法的映射,采用类似字典树的结构Engine.RouterGroup,其中的Handlers存储着所有中间件Context上下文对象,负责处理请求和回应,其中的handlers是存储处理

2020-08-31 23:46:37 6399 3

原创 redis stream 浅入浅出

背景介绍Stream是Redis 5.0引入的一种新数据类型,可以使我们更好的使用redis当作我们项目的轻量消息中间件,在设计上借鉴了 kafka,引入了消费组等概念,使redis传输的消息更加可靠,可以持久化消息,支持消息的重传,超时等系统原理在stream设计中,生产者通过 xadd 命令往stream结构中增加消息,而消费者则可以选择独立消费或者以消费组的方式来进行消费,一个stream中可以挂多个消费组,每个消费组互不干扰在消费组中,消费者们通过抢占式来进行消费,抢到一个消息last_de

2020-08-03 22:43:40 171

原创 数据排序权重设置实现方案

假设现在有4个数据需要排序,要求你提出方案​​实现1给每一个元素都设置一个初始化权重0,通过每次设置每个元素的权重来进行排序,权重越大就会越前优点:实现简单,可以任意配置权重来安排任意位置缺点:用户体验不好,需要对每个元素都需要设置权重来进行排序,如果对于权重的判断不够严谨,有可能会导致权重太大超出系统储存范围实现2给每一个元素设置从小到大的一段连续的权重,每次需要变更顺序的时候分两个步骤进行1. 将自身的权重设置为想要的位置权重2. 将比目标权重小(大)的记录的权重减1(加1)

2020-06-05 23:58:43 4299

原创 php 破坏单例模式(没有绝对的单例模式)

在大家写一个单例模式的代码时,很容易就会写出以下的代码class s{ private static $single; private function __construct() { } public static function getSingle() { if(!self::$single){ self::$single = new self(); } return se

2020-05-26 15:46:14 229

原创 mysql 组合索引只用了一部分也能用上索引?

问题如下:有一个表,总行数为21万,其中只有一个组合主键索引 primary key (channel_app_id, content_app_id)create table t_channel_apply( channel_app_id varchar(64) default '' not null comment '渠道方appid', ...

2020-03-10 17:07:32 2775 1

原创 hyper必备知识点

在使用 hyperf 之前需要了解的几个知识点进程,线程,协程区别进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。上下文进程间的切换开销比较大线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。协程是一...

2020-02-28 22:50:08 2956

原创 php laravel terminate中间件 实现原理与实例

总所周知,laravel中的中间件 分为 前置,后置,terminable中间件(也叫可终止的中间件),在官方文档中是这样介绍的 这样就让人很好奇,于是我就做了几个测试.新建了一个中间件 我创建了一个全新的laravel项目,并新建了一个中间件,并加上了 terminate 方法,这样他就成为了 terminate 中间件了同时我也准备了两种请求方法,一个是直接页...

2019-09-17 11:37:20 2228

原创 php 开启内置服务器 getaddrinfo failed

PHP 5.4.0起,CLISAPI提供了一个内置的Web服务器。php -S ip:端口 原本很正常的使用,但有一天开发项目我使用以下语句开启时php -S localhost:8080但系统却给我报出了这样的错误Unknown: php_network_getaddresses: getaddrinfo failed在网上找了很多文章都没有符合我的情况,我只...

2019-08-11 17:25:00 1041

原创 mysql 排序 order by 和 limit 导致分页数据重复顺序错乱

select * from `t_content_tag_relation_mobile` where `tag_id` in (31) and `status` = 0 and `distribute_state` = 0 and `display_mobile` = 1 order by `hot` ...

2019-05-18 13:57:22 5110 1

原创 php laravel lumen 快速接入网易云信 im

第一部分了解网易云信im根据上图所示,在我们接入网易云信im时,我们所需要做的就是蓝色部分,并且客户端网易提供了一个完整的demo,我们的开发完全可以基于这个demo来改造,然后就是应用服务器的开发,由于官网提供了大量的api接口来实现基层功能,使得我们可以专心于我们的业务开发。App_server = 应用服务器,App = 客户端.在上图,我们知道,我们的第一步就是创建账号,...

2019-04-14 17:36:32 896

转载 php安装kafka扩展

环境windows 7php 7.0 1.下载扩展https://pecl.php.net/package/rdkafka/2.0.1/windows= 2.解压后复制 librdkafka.dll 到 C:\Windows\SysWOW64 (如果你是64位就放到C:\Windows\System32) 3.在放置的目录运行regsvr32 librdkafka.dll 4.将 php_rdka...

2018-06-14 21:33:16 2935

原创 lnmp 搭建虚拟主机域名了

接上一篇文章centos7搭建lnmp (php7 + mysql5.7 +nginx1.8)配置好了当然到配置虚拟主机域名了首先先在 /etc/nginx (在安装目录中),新建一个vhosts目录   mkdir vhosts     2. 在vhosts新建一个文件(名称建议是你的域名.conf),并写入server { listen 80; server_name xxx....

2018-06-04 14:23:28 1051

转载 如何在Linux Mint上升级Adobe Flash Player

昨天刚重装了电脑,安装了别人推荐我的Linux Mint系统,感觉真的挺不错,界面还挺简洁的但是当我打开 熊猫,斗鱼的时候居然提示我flash版本过低了,害的我赶紧百度怎么解决,百度居然叫我去官网去下载flash安装包,(感觉怪怪的),原来他的意思是把下载下来的flash发到火狐浏览器的插件中,然后重启就会生效的,但我用的是谷歌浏览器啊,下面是系统安装flash的方法sudo apt-get in...

2018-05-31 09:53:27 668

原创 centos7搭建lnmp (php7 + mysql5.7 +nginx1.8)

1.php7编译安装    1.1 首先下载并解压php安装包 php下载地址           下载wget http://cn2.php.net/get/php-7.2.4.tar.xz/from/this/mirror           解压 (tar 解压命令   -x 解压  -v 显示所有过程  -f 使用档案名字)    tar -xvf mirror      1.2  安装...

2018-04-22 14:11:41 4119

原创 thinkphp5+easywechat开发小程序支付

composer下载thinkphp5  composer create-project topthink/think [你的目录名] --prefer-distcomposer下载easywechatcomposer require hooklife/thinkphp5-wechat配置好小程序的appid和appsercret,还有证书第一步:获取用户的op

2017-08-17 16:45:56 8255

原创 laravel Socialite Providers 实现第三方登录

2017/6/16 laravel 5.4 版本问题 "socialiteproviders/manager": "2.1.2", "socialiteproviders/weibo": "2.0.1", "socialiteproviders/qq": "2.0.3", "socialiteproviders/

2017-06-16 19:01:25 2866

转载 我安装了最新版的phpstudy,用composer提示PHP版本低

我电脑有原先有一个phpstudy,但是PHP版本为5.6,不能满足Laravel的版本需求,所以我重新下载了最新版的phpstudy,我安装了最新版的phpstudy,用composer提示php版本低解决办法: 1)先用phpstudy更换版本2)在环境变量中PATH改一下路径,指向最新的php3)重启cmd或phpstorm运行composer install 就可以

2017-06-16 18:25:33 6800

原创 微信支付接口开发

微信sdk中的wxpayPubHelper.php写的很有问题,以下是我遇到的主要的3个问题1:这个问题还是看了别人的文章才发现 curl_setopt($ch, CURLOPT_TIMEOUT, $second);2:curl提示没有解析代理原因是的超时检测时使用了代理,注释就好3:curl错误提示时,延迟使用curl_close

2017-05-02 20:44:42 450

转载 微信支付遇到的小问题

相信第一次开发微信支付的童鞋都是从下载修改微信提供的例子开始,而微信官方提供的“微信公众号支付接口文档V3.3.7”中的PHP版本例子,一开始就跟大家开了个玩笑(这里强烈鄙视一下微信开发团队!!)Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in /wx_pay_test/WxPayP

2017-04-29 20:31:23 1085

原创 thinkphp实现上传图文消息中的图片的接口

public function save(){        $content = input("content","","trim");                $WXAPI = $this->getWXAPI();        $path ="/ueditor/php/upload/image/20170120/1484911919290550.jpg";     

2017-04-22 15:47:09 575

空空如也

空空如也

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

TA关注的人

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