自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用samba将虚拟机的centos项目目录文件映射到window10

    由于本人最近在空余时间中学习,遇到cli环境下运行的项目,修改和编辑代码十分不方便,所以搜索了一下相关资料,特意整理了这份博文首先我们先安装 sambayum install samba安装好之后 添加一个系统用户以及samba的用户useradd duoduosmbpasswd -a duoduo (输入两次密码 注意如果不识别小键盘的数字 别犯低级错误哦。。)smbpasswd -e duoduo创建好用户之后 我们修改samb

2021-03-22 17:25:24 285

原创 redis cluster 集群模式下的布隆过滤器(php)

redis cluster下的布隆过滤器(Bloom Filter)什么是布隆过滤器        而布隆过滤器本质上是一个数据,采用的结构是比特数组,可以根据下标迅速找到下标。相对于其他数据结构,布隆过滤器可以更高效的插入与查询,并且占用空间小。但也有缺点,由于是概率算法,精度会有所丢失,但如果参数设置的合理,可以将精准度控制的相对精确。      &nbsp

2020-07-31 15:20:22 894

原创 当redis cluster集群中某个主节点与从节点同步失败的解决办法

redis cluster笔者搭建好cluster(三主三从)之后,进入到redis 集群模式测试了一番,意外发现其中有一个主节点和从节点同步失败。但是其他都是正常的,于是笔者进入集群模式redis-cli -h 12.0.0.1 -p 6379 -c 想查看节点是否连接成功cluster nodes节点是成功的,但是为什么没有同步成功了,善用搜索引擎后,笔者也没有查找到相关的资料。。。于是笔者查看从节点的日志,想从中窥探出蛛丝马迹从上笔者根据再次使用搜索引擎后,发现删除dump.

2020-07-23 17:29:32 2403 2

原创 redis cluster当有多台从服务器宕机,进行重启

笔者今天kill掉全部cluster的全部从节点,原本是想试试读写分离的,但Kill掉之后重启之后却无法主从可以看到,只有主节点在运行,于是笔者进入到redis中 输入命令 cluster nodes 后出现以下的信息cluster nodes显示的每一行信息,由下面的字段组成。《id》《ip:port》《flags》《master》《ping-sent》《pong-recv》《config-epoch》《link-state》《slot》《slot》《slot》每个字段的含义如下id:

2020-07-23 17:07:41 707

原创 搭建redis cluster集群(主从复制)

Redis Cluster    单台机器故障,在生产环境中是发生概率较高的事情,如果因为某台机器故障而影响了整个系统,那只能说明这个系统非常的不健壮。如果是采用分布式的部署方案,就可以尽量地避免单点问题。    今天来简单介绍下,Redis的官方多机部署方案,Redis Cluster。 一组Redis Cluster是由多个Redis实例组成,官方推荐我们使用6实例,其中3个为主节点,3个为从结点。一旦有主节点发生故

2020-07-22 10:02:44 444

原创 实现一个对象池模式(注册树)

    在一些项目架构当中,当我们需要实例化一大堆的类,比如 a/b/c/d/e/f/g…等等,那么代码变得很冗余,那么有没有一种方法,能够去避免这种方法呢?(其实是因为懒)     下面讲解的是一种能够解决这种情况的设计模式。对象池模式(又叫注册树模式) :    对象池模式(The Object Pool Pattern)是单例模式的一个变种,它提供了获取一系列相同对象实例的入口。

2020-07-07 16:36:34 125

原创 参考tp5,实现一个简单的容器

今天翻看tp5的源码时,看到了入口文件 index.php通过查看代码与文档,得知是使用了容器来动态的实现类的加载,在开始前,是我们需要了解的几个知识点:自动加载依赖注入控制反转(Ioc)反射机制单例模式注册树模式(对象池)后期静态绑定闭包函数我们先定义好两个基础类...

2020-07-07 16:32:42 465

原创 php new static与new self 的区别

https://www.cnblogs.com/feiffy/p/9772879.html

2020-06-29 17:59:41 243

原创 php的生命周期与工作原理

    PHP 运行模式大多分为两种 Web 模式、Cli 模式。无论哪种模式,PHP 生命周期都是一样的,作为一种 SAPI 运行。SAPI :它是 Server Application Programming Interface 的首字母缩写,意思是服务器端应用编程接口。这是 PHP 内核提供给外部调用其服务的接口,即外部系统可以通过 SAPI 来调用 PHP 提供的编译脚本、执行脚本的服务。PHP 中实现的 SAPI 有很多,Cli

2020-06-28 16:20:51 273

转载 面向对象编程思想(OOP)

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性、七大设计原则和23种设计模式之间的关系。    软件开发中疑难问题:软件复杂庞大很多软件进入维护阶段需求的不断变更     软件开发中存在很多其他的问题,上面只是从程序开发和设计的角度看到的部分问题。需求解决上面软件开发中的问题,就要求我们编

2020-06-24 10:33:07 193

原创 php 利用反射机制完成动态用户权限(RBAC)

<?phpclass duoduo{ /** * 这是pay方法的注释 * @return string */ public function pay(){ return '我是 pay 方法'; } /** * 这是cancle方法的注释 * @return string */ public function cancel(){ return '我是 cancl

2020-06-23 22:33:59 459

原创 详解工厂模式(简单工厂、工厂方法、抽象工厂)

    当你有大量的实现同一接口的类的时候,在合适的时候实例化合适的类,如果把这些 new 分散到项目的各个角落,不仅会使业务逻辑变的混乱并且使得项目难以维护。这时候如果引进工厂模式的概念,就能很好的处理这个问题。我们还可以通过应用程序配置或者提供参数的形式让工厂类为我们返回合适的的实例。    工厂类,它把实例化类的过程放到各工厂类里头,专门用来创建其他类的对象。工厂模式往往配合接口一起使用,这样应用程序就不必要知道这些被实

2020-06-21 18:31:30 127

原创 详解单例模式(构建与应用场景)

class simple{ private static $instance; private function __construct(){ echo "我实例了"; } public static function getInstance(){ if (!self::$instance) { self::$instance = new self();

2020-06-17 16:12:27 158

原创 php 一个时间范围与另外一个时间范围是否冲突(有边界值与无边界值)

笔者在前段时间遇到这样的一个业务场景:学生报读了 上课周期为2000-1-1 至2000-3-1的课程如果该学生再报读一个 2000-2-1 至2000-2-20的课程 则不允许报读因为其已报读的课程与欲报课程存在时间冲突,其结果不成立以上是笔者的业务要求,本着复制粘贴工程师的头衔,直接上百度找了封装好的函数,高效的完成了需求 function is_time_cross($beginTime1 = '', $endTime1 = '', $beginTime2 = '',

2020-06-11 23:12:19 393

原创 php中 spl_autoload_register 实现自动加载 以及多次调用

php中 spl_autoload_register 实现自动加载 以及多次调用最近一段时间有看某课网的视频,对里面讲解的框架源码产生兴趣,所以这里特意了解了一下  开始前,首先要知道 spl_autoload_register 这个函数是拿来干嘛的,有什么用,按照官方文档的解释:就是将函数注册到SPL __autoload函数队列中。如果该队列中的函数尚未激活,则激活它们。   下面我们开始一些实际操作,去看看如何进行使用创建index.php文件<

2020-06-10 01:02:21 3143 1

原创 php中 __call与__callStatic的作用与使用场景

关于这两个参数的具体作用是:__call: 在对象中调用一个不可访问方法时,__call() 会被调用。__callStatic:在静态上下文中调用一个不可访问方法时,__callStatic() 会被调用。我们先上demo,在去了解这两个方法有哪些具体使用场景class demo1{ public function exist_in(){ echo '我在'; }...

2020-04-01 11:37:04 806 1

原创 composer 切换为国内镜像

今天原本想composer安装个jwt结果显示composer无法连接到镜像源最近阿里云的composer的镜像不是过慢就是无法使用,特意的去搜了一下,拿到了一个比较稳定的镜像地址打开命令行执行以下命令composer config repo.packagist composer https://packagist.phpcomposer.com再从新下载就可以啦...

2020-03-16 19:25:29 145

原创 php swoole-进程

前言:参考swoole的文档,我们得到了swoole的进程与php操作进程的方式的优缺点,文档是这样写的:优缺点PHP自带的pcntl,存在很多不足,如:没有提供进程间通信的功能不支持重定向标准输入和输出只提供了fork这样原始的接口,容易使用错误Process提供了比pcntl更强大的功能,更易用的API,使PHP在多进程编程方面更加轻松。Process提供了如下特性:...

2019-12-16 01:43:20 170

原创 swoole-异步mysql

前言:需要的注意的是,如果swoole版本在4.3以上,我们就不能够使用Async文档中的异步协程回调了!而替代上方的Async文档的Coroutine文档,我们打开官网的Coroutine的选项,进入到异步mysql的相关文档中1.这里也有一个坑,可能是文档没有描述清楚,我们如果按照上面的下面的这个demo是无法使用的,会报错笔者在这里折腾了一个多小时,终于找到了方法,需要在协程方法...

2019-12-11 21:02:08 173

原创 swoole-毫秒级定时器

1.打开手册$timer_id:是定时任务执行的id。swoole_timer_tick:是执行逻辑的函数,比如我想在定时任务中每次将user表的type值为0的修改为1 。swoole_timer_after:是定时任务触发函数,当定时任务成功执行完毕后约定的时间后的触发函数,例-:当定时任务触发成功后5s输出一个5s:after则为一下结果:该任务只会在定时任务触发后的约定时间内触...

2019-12-09 15:24:03 236

原创 php swoole-task任务

task任务是投递一个异步任务到task_worker池中,此函数是非阻塞的,执行完毕会立即返回。Worker进程可以继续处理新的请求。使用Task功能,必须先设置 task_worker_num,并且必须设置Server的onTask和onFinish事件回调函!!task任务常见于一键发送邮件,通知。如我需要发送一万封邮件给一万个用户,如果是传统的实现方式,则会存在堵塞、延迟,从第一份到发送...

2019-12-05 10:39:39 253

原创 swoole-websocket

websocket打开官网,我们看到需要注意的是,其中的回调函数open与close不是填的,但是message这个回调方法是必须实现的,我们拿到上面的代码,直接复制,在/study 目录下新建一个websocket.php 文件我们继续在/study 目录下新建一个websocket.html文件,开始撰写相关的前端代码在上面的demo中,相关的js代码可以在websocket的资料...

2019-11-13 18:12:16 212

原创 php swoole-http_server

http_server由于这里的参数比较简单,所有我们直接上代码,会更加详细,在测试http_server时,我们还需要配置一个域名,指向该目录,关于配置域名,不回的朋友可以去了解一下,比较简单,这里就不去过多阐述了...

2019-11-06 14:48:51 337

原创 swoole-udp

udp首先在这篇文章开始前,给大家说一下udp是什么在udp协议当中,swoole的文档对该方面描述的比较少,但我们还是可以找到一些demo我们直接复制上方的这段代码,在linux下创建一个udp.php我们在文档中看到了在这里我们不能再使用telnet 命令去连接,我们需要另外一个指令 首先先确定自己有没有netcat,如果没有,直接运行 yum install -y nc然后我...

2019-11-05 15:14:43 256 1

原创 swoole-client

client我们打开swoole的教程,找到client文档的所在位置然后我们在linux下新建一个tpc_client文件,复制上方代码3.这里我们需要用到php内置的一个cli变量 STDOUT,它的作用是什么呢 ,有点像然后我们继续撰写下面的代码,将获取到的信息输出在命令行当中,并且去除左右两边空白字符最后我们查看手册,在client文档中,还有一个send方法,这个s...

2019-11-05 14:47:27 239

原创 swoole -tcp

创建tcp服务首先打开swoole官网,进入开发手册,点击入门指引-快速起步-创建tcp服务器看到demo后,我们大概知道要编写那些代码,下一步我们进入到linux 开始编写这段代码,为了下面的演示,我们开启Linux的两个会话我们在linux里面新建了一个目录 名为study 编写了我们的第一个tcp代码撰写了以下代码5.最后我们在linux运行该文件 php in...

2019-11-05 11:38:16 199

转载 php实现redis分布式锁

前段时间学习有了解到高并发的redis分布式锁,刚好有看到博客上看到,认为还不错,所以在这里分享一下,不多说,直接上代码<?phpnamespace app\index\controller;use think\Db;use think\Controller;class Index extends Controller{ private $redis;//redis实例对...

2019-04-27 17:09:31 863 1

原创 PHPstudy安装redis扩展并启动redis

    前言:redis对许多后台开发者并不陌生,而php开发者PHPstudy这款集成环境大多都有所耳闻,那么如何在PHPstudy中安装redis扩展并启动redis呢?下面我们会将这些问题进行实操。    首先我们先查看自己的配置,在能够访问到的php文件中,输入phpinfo()函数查看环境配置 ...

2019-04-27 09:57:51 16521 58

转载 Redis的PHP操作手册(转)

String 类型操作string是redis最基本的类型,而且string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象$redis->set('key','TK');$redis->set('number','1');$redis->setex('key',5,'TK'); //设置有效期为5秒的键值$redis-...

2019-04-27 09:13:33 994

原创 redis五种数据类型之zset(有序列表)

  前言:zset(有序列表)可能是redis中提供的最有特殊的数据类型,它也是面试官中最喜欢稳到的数据类型,一方面它是一个set(无序列表),可以保证它内部的value唯一性,去重。另一个方面它可以给每个value一个权重,代表这个value的排序权重,当zset中最后一个元素被删除时,数据结构被自动删除,内存被回收,zset可以用来做存储好友列表,value是好友的用户id...

2019-04-24 11:58:42 1581

原创 redis五种数据类型之set(无序集合)

   前言:set类型内部键值对是无序的,唯一性,它的内部相当于一个特殊的字段,字典中所有的value都是一个值null。  当集合中最后一个元素被移除之后,数据结构会被自动删除,内部被回收,另外set结构可以用来储存在某活动中中奖的用户id,因为有去重功能,可以保证同一个用户不会中奖两次  插入语法:sadd  ...

2019-04-23 17:43:43 309

原创 redis五种数据类型之hash(字典)

  前言:redis的hash(它是无需字典) 内部储存了很多键值对,实现结构上都是数组+链表的二维结构,不同的是,redis的字典的值只能是字符串,另外redis为了追求高性能,不能堵塞服务,所以采用了渐进式rehash的策略,有兴趣的朋友可以往这方面了解一下,下面我们来看看示例   设置hash:hset   字典名   值&...

2019-04-23 17:02:54 454

原创 redis五种数据类型之list(列表)

  前言:redis的list列表有点类似于Java语言里的linkedlisy,不过它是链表而不是数组,也意味着list的插入和删除操作非常快,但是索引定位很慢,列表中的每个元素都使用双向指针顺序,串起来可以同时支持前向后向遍历。  redis的列表结构常用来做异步队列使用,将需要延后处理的任务结构体序列化成字符串,塞进redis的列表中,另一个线程从这...

2019-04-23 10:51:28 567

原创 redis数据类型之string(字符串)类型

redis五种数据类型之string类型笔者前几天刚购买了一本关于redis的书籍,借着能给阅读到大牛写的书,索性也就在书中所学习到的东西分享给大家,第一天主要是五中基础数据类型的操作,如果你也是刚入门,可以下载一个redis的可视化工具:Redis Desktop Manager五种数据类型之:strin...

2019-04-19 16:51:17 395

空空如也

空空如也

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

TA关注的人

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