自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jerry的博客

记录每天的成长

  • 博客(169)
  • 收藏
  • 关注

原创 工作中常用的linux命令,总结一下,下次就不百度查了

工作中用到的命令内存 (一般是服务器卡顿)内存 (一般是服务器卡顿)服务器的文件系统的磁盘空间占用情况-h 方便查看df -h 服务器的文件系统的内存占用情况-h 以适于人类可读方式显示内存信息free -h...

2021-08-31 21:33:33 209

原创 clickhouse从入门到放弃

最近公司需要使用clickhouse做数据分析,我赶紧从docker上下载一个,学习学习。学习成本不大,会mysql就行。clickhouse下载分区基本使用下载下载clickhouse包docker pull yandex/clickhouse-clientdocker pull yandex/clickhouse-server启动clickhouse-server实例docker run -d --name clickhouse --ulimit nofile=262144:262144

2021-08-24 11:48:15 345

原创 看了设计模式之美,记录一次看书心得

未优化的代码:class IdGenerator { public static function insertLog(){ return '记录日志'; } public static function generate() { $id = ""; try { $hostName = '127.0.0.1'; $count = 0; while ($count < 8) { $randomAscii =

2021-08-20 15:17:22 189

原创 hyperf 处理百万数据单元测试案例

场景:有一批数据没有推到中间件,需要我这里搞一个脚本,大约有600万数据。我开始比较蠢的方法是将文件拆分,然后一条一条读。一条一条请求,速度很慢,如果因为某些因素中断程序,虽然有日志,但是还是要将已经跑过的数据去除,很麻烦后来领导说放redis,然后用hyperf协程搞。为啥这样搞,redis保证数据不丢。开协程增加并发废话不多说,上代码/** * composer test -- --filter=testCmshzSignHandle */ public funct

2021-08-05 13:25:06 1032

原创 hyperf composer执行单元测试超时处理

描述:问题一:超时超时时间2000scomposer --global config process-timeout 2000问题二:OOM command not allowed when used memory > 'maxmemory连接redisredis-cli查看内存信息 info memory查看内存 config get maxmemory设置redis内存 100Mconfig set maxmemory 100mb下面的写法都支持...

2021-08-03 20:10:46 308

原创 大文件切割,访问26wURL地址

需求是将一个192M的文件,将url地址提取出来,然后要访问一遍1首先将文件按行进行拆分split -l 2000 data_20210728_071202.txt2将切分好的文件命名,也可以用shell脚本写一个命名 #!/bin/bash function read_dir(){i=1for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令 do if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错 then read

2021-07-29 20:42:14 87

原创 mysql 批量更新还是单条更新如何选择

首先说一下业务场景,需要替换某个字段的值,我选择的是批量更新,我队友选择的单条更新。她说:选择单条更新吧,一个是稳,主要是保证数据准确,然后说,批量更新会引起锁表。表锁:不会出现死锁,发生锁冲突几率高,并发低。行锁:会出现死锁,发生锁冲突几率低,并发高。批量更新是否会引起锁表?批量执行sql时,如果查到sql语句没有走索引,会出现表锁。原因:mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁。简而言

2021-06-25 14:58:16 1953

原创 es工作原理及如何构建集群

ES搜索引擎与MySQLes安装搜索引擎与MySQLmysql搜索一个词 %查询条件%es:天然的分布式 api对外接口,提供数据写入(java写的占用内存大)solr: api接口对外,sphinx: 基于sql的全文检索es安装docker镜像docker pull elasticsearch:7.6.1es配置 elasticsearch.yml#es集群名称cluster.name:elasticsearch-cluster#节点名称node.name:es-mast

2021-06-04 00:42:23 335

原创 跟我一起从入门到精通go

go安装环境安装环境下载go编辑器

2021-06-01 00:22:15 123

array_filter函数使用

我们的项目中,查询好多地方用到了array_filter函数,它的目的是可以用函数来过滤没有值的筛选项,但是,一定要知道,array_filter会过滤掉任何值等于FALSE的值,也就是说 0值,空字符串,null,都会被过滤。举个例子,staus=0 是未提交 1是已提交。如果查...

2021-05-29 22:46:52 225

原创 docker容器之间的通信,如何配置

场景:刚来公司,做了一个项目,分别有两个容器,a和ba容器需要访问b容器,两个容器如果都在同一个网段中,应该也是可以互相通信的,使用命令ping查看镜像docker ps查看挂载信息docker inspect nginxdocker inspect phpfpmdocker inspect 项目b查看local的网络信息docker network lsa容器要请求b容器的项目,a容器和b容器建立连接docker network connect 容器a 容器b进

2021-05-21 11:13:04 250

原创 Phalcon学习笔记

怎么说呢,我也很无奈,今天刚给我权限clone代码,框架是Phalcon,明天就就要把功能完成。那我就速成一下子Phalcon速成路由和接参数 (我用到的是post)分布式事务保证一致性路由和接参数 (我用到的是post)首先是要学会怎么传参到指定的文件中,index文件首先会定义一个路径。然后是控制器,默认是index方法use Phalcon\Mvc\Controller;class PostsController extends Controller{ public funct

2021-05-20 01:16:06 354

原创 rabbitmq学习笔记

rabbitmqAMQP协议安装三级目录AMQP协议生产者消费者队列一个队列存多条消息消息连接发消息和接收消息都是必须先建立连接通道(channel)一个连接有多个通道,消息会在通道里面流转,之后到达消费者交换机(exchange)路由的概念,通过绑定,和路由路由键交换机通过路由键去寻址,找到队列绑定队列和交换机的一个关联连接用户在RabbitMQ里,可以通过制定的用户名和密码来进行连接,每个用户可以分配不同的权限。读或者写或在实例里配置的权限交换机类似mysql的

2021-05-18 00:12:35 163

原创 hyperf框架的入门到精通

hrperf框架的入门前言数据库配置 (读写分离)创建表增加删除查询路由注解路由route文件的路由前言我跳槽了,去了一家电商。人家都是docker开发,用的框架是hyperf,然后入职第一天,搭了一天环境。这就是学习的动力,开始吧!加油打工人!!!数据库配置 (读写分离)Coroutine\MySQL协程MySQL客户端,但是人家不推荐使用了,现在推荐使用的是Swoole\Runtime::enableCoroutine+PDO或Mysqli方式,即一键携程化原生PHP的MySQL客户端

2021-05-14 00:52:59 9030 3

原创 git使用及上传代码到github

git使用及上传代码到githupgit使用git安装git上传代码到githubgit使用找一个目录查看git版本git --version我添加了一个文件到test目录git statusgit status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些文件没有被Git tracked到。git status不显示已经commit到项目历史中去的信息。看项目历史的信息要使用git log由于我还有没有git init所以检测不到那我就初始化仓库g

2021-05-11 22:07:21 134 1

原创 swoole简单应用,加速框架

swoole 是一个使用 C++ 语言编写的基于异步事件驱动和协程的并行网络通信引擎,为 PHP 提供协程、高性能网络编程支持。优势:常驻内存,避免重复加载带来性能损耗协程异步,提高对 I/O 密集型场景并发处理能力(支付、登录等)提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等)首先你需要先安装swoole第一种方式下载swoole找到安装包 进行解压tar –zxvf swoole-4.6.6.tar第二种方式有docker的话 先把压缩包解压,然后将安装

2021-05-10 23:29:54 556 4

原创 window 10系统 在docker里搭建lnmp环境

安装centos下载centos7这篇文章是下载的图形界面在图形界面使用 ctrl+alt+F2切换到dos界面dos界面 ctrl+alt+F2切换回图形界面进入dos界面 查看当前的默认界面形式:systemctl get-default结果出现:图形化界面graphical.target命令行界面multi-user.target设置系统默认的界面形式(需要进入到root模式)设置为图形化界面:systemctl set-default graphical.targ.

2021-05-10 00:19:50 1222 8

原创 初学swoole

事件onStart启动后在主进程(master)的主线程回调此函数function onStart(Swoole\Server $server);参数Swoole\Server $server对象在此事件之前Server已经进行1.启动创建完成Manager进程2.启动创建完成Worker子进程3.监听所有TCP/UDP/unixSocket端口,但未开始Accept连接和请求4监听了定时器接下来要执行主Reactor开始接收事件,客户端可以connect到serveronS

2021-05-04 02:31:31 640 4

原创 windows 10 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credenti

Win10家庭版解决方法:1、按下WIN+R打开运行,然后输入services.msc回车;2、在服务中找到 HV主机服务,双击打开设置为禁用;Win10系统下提示VMware与Device/Credential Guard不兼容如何解决3、用管理员身份打开cmd4、运行命令:bcdedit /set hypervisorlaunchtype off;5、再重新启动Win10系统就可以解决VM虚拟机打不开的问题了ps:第四个命令让docker用不了了,如果想要用dockercdedit

2021-04-27 01:03:24 956

原创 降级

1.不重要的功能->平时从mysql获取的数据,如果突然来了很多请求,系统负载不过来 请求开关 用redis(分配到2,3,4,5)2.从缓存中获取数据,3.静态文件。4.nginx直接返回空数据(关停某个功能)5.兜底文件降级的种类:1.根据开关的位置:可以分为代码降级和前置降级...

2021-04-24 19:00:28 247 2

原创 总结一下我复习过的算法和mysql

mysql 架构:连接器->查询缓存->分析器->优化器->执行器B+树数据全部存放在叶子节点,B+树中查询任意数据的次数,都是n次,n表示的是B+树的高度php7 不用下载包 ,拓展库就有,直接new 就能实现9种数据结构这些会随着进程销毁而销毁最大堆://堆 分为最大堆和最小堆 //队列和栈都是线性结构 底层是 指针//队列先进先出 (排队取票)$q = new SplStack();//栈 先进后出 (便签)$q[]=1;$q[]=2;$q[]=3

2021-04-22 01:51:49 139 1

原创 高并发会问什么?

高并发高性能请求分发 (负载均衡)请求分发的实现方式响应前置前置到接入层将上次访问的数据生成一个前置缓存,从而第二次无需深入访问拆分服务拆分插件拆分技术组件拆分数据库拆分nosql以及搜索引擎拆分消息队列拆分数据结构优化消息队列数据异构与聚合缓存程序优化集群前端优化硬件优化高可用集群主从降级,限流算法负载均衡故障切换健康监测多分组,多机房隔离cap理论BASS理论锁策略可伸缩架构扩容与缩容场景mysql伸缩consul之微服务伸缩高性能请求分发 (负载均衡)请求分发的实现方式如果请求是无状态的,那么

2021-04-18 23:24:20 139

原创 网络安全,我懂了!你咧?

网络安全解决web安全问题主要从哪些方面入手sql注入攻击听过盲注吗?解释一下,和报错注入,普通注入的区别?跨站脚本攻击 XSS ?怎么预防?跨站伪造请求攻击 -CSRF文件上传漏洞攻击分布式拒绝服务攻击对称加密,非对称加密是什么?什么是同源策略?SYN攻击原理?参透测试?参透测试的流程了解过没?解决web安全问题主要从哪些方面入手sql注入攻击原因是没有对输入输出进行安全过滤,后台直接将用户输入,当做sql语句的一部分,然后直接执行了,导致用户对sql语句可控。$uuid = $_GET['uu

2021-04-18 02:59:49 182

原创 初学rabbitMQ及Kafka

左client 客户端 生产者broker 中转站右client 客户端 消费者exchange 交换机(快递员) 和 queue 队列(邮箱) 直接进行绑定如果有个订单业务,用户下完单后就要发短信,传统的实现方式都是给mysql,mysql插入数据,之后发短信,再取数据发送,但这里就比较耗时,也耗数据库的性能。怎么优化呢?做拆分,异步任务往mysql插入数据成功后,向rabbitMQ 插入数据,如果发短信的话,rabbitMQ去发短信就好了RabbitMQ的使用场景? (很多设计思.

2021-04-17 02:51:36 148

原创 php底层了解一下子 及 linux命令

PHP 的核心数据结构是什么?HashTablehashTable为什么Linux要分为用户空间和内核空间?1.安全 内核有些接口给用户空间用运行php有个 调度的过程,用户空间-》调用内核空间,内核空间返回用户空间,会有两种状态切换谈谈你队5种常用IO模型的理解?1阻塞IO,2.非阻塞IO3.多路复用IO4.信号驱动IO5.异步IO一次网络请求的完整过程?(重点)1.用户输入url 浏览器缓存 (f12 network size (disk ..

2021-04-16 00:25:58 476 2

原创 php5和php7终究有哪些变化?让我来带你研究

新增了一些操作符<=>、??<=> 还有个骚气的名字 太空船运算符,话说 摘了眼镜是有点像太空船哈那怎么用呢? 不多说了上代码$b=3;$c=1;$d=3;var_dump($b<=>$d); //b等于d 0var_dump($b<=>$c); //b大于c 1var_dump($c<=>$d); // c小于d -1?? 这个怎么用呢?$a = 0;$a = $a ?? 10;$b = $b ?? 5;v.

2021-04-15 15:04:58 185

原创 Redis面试 不问这些来找我

Redis如何实现延时队列?有序集合,使用时间戳作为score,消息内容作为key,调用zadd来生产消息,消费者使用zrangbyscore获取n秒之前的数据做轮询处理Redis缓存击穿是啥?怎么解决?缓存击穿是指缓存中没有数据,但数据库中有数据,一般是缓存时间到期,如果并发用户特别多,同时读缓存没读到数据,有同事去数据库中去数据,引起数据库压力瞬间增大,造成过大压力。(一条热点数据)如果是不同数据都过期,很多数据都查不到,那就是缓存雪崩了。(ps: 我经常把缓存击穿和穿透搞混,后来我想了想.

2021-04-14 01:30:51 103

原创 二分法 两种写法你会的是哪个?

最近刷leecode总结了一个规律,只要是有序数组,我都会用到二分法,为啥呢? 数据库其实也是二分查找。左闭有开$arr = array(1,3,5,8);// $target = 9;function searchInsert1($nums, $target){ $n = count($nums); $left = 0; $right = $n; // 定义target在左闭右开的区间里,[left, right)数组中的数据一定在$nums[0,4) target

2021-04-13 15:42:54 108 1

原创 mysql 面试题 一定会问

订单,库存两个表怎么保证数据一致性?mysql用事务,存储引擎InnoDB,事务规定只有订单完成,并且相应的库存减少才允许提交事务,否则事务回滚,确保数据一致性外键的作用保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。如果设置了外键,删主表数据时,不能删https://my.oschina.net/u/4479011/blog/4494777什么事读锁,什么是写锁?读锁又叫共享锁,可以读但不能修改写锁又叫排它锁,它自己可读可修改,其他事务不能读也不能修改数据库中,什么是锁?.

2021-04-12 23:17:58 82

原创 hash 一致性是啥?

可算搞明白了,hash一致性是一种算法,保证了服务器的高可用,一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:平衡性(Balance):平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。单调性(Monotonicity):单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可以被映射到原有的或者新的缓冲中去,而不会被映射到

2021-04-12 15:12:19 331

原创 php 面试题基础 呕心沥血总结

考察面向对象这样写,对象是引用不是赋值 指向同一个地方$b=new a();$c=$b;$b->abc='D';echo $c->abc;DList item

2021-04-11 01:14:10 108

原创 docker 安装kafka及运行

现在项目中用到了Kafka那我在docker上也安装一个玩玩废话不多说,上命令首先安装wurstmeister/zookeeperdocker pull wurstmeister/zookeeper安装Kafkadocker pull wurstmeister/kafka运行zookeeperdocker run -d --name zookeeper -p 2181 -t wurstmeister/zookeeper运行Kafkadocker run -d --na

2021-04-03 16:52:47 682 1

原创 docker 安装CentOS SSH远程连接

终于搞定了,开心废话不多说,上命令1. 安装centos 镜像docker pull centos2. 查看镜像docker images3. 启动镜像docker run --privileged -itd -p 8888:22 --name centos7 300e315adb2f /usr/sbin/init注意这里路径 /usr/sbin/init----privileged 启动后让docker容器具备超级特权。-itd 交互式、终端、后台运行-p 把宿主机的888

2021-04-02 23:02:34 284

原创 PHP 生命周期和垃圾回收你了解多少?

PHP生命周期PHP的运作模式有几种?WEB模式(nginx发送请求到html页面,页面请求到sapi接口做代码执行。)+CLI模式(命令行)sapi是啥?php里面会有sapi (所有数据接收的通道)sapi包含 php-fpm(web) cli(命令行) cgimain() 【不同sapi的main】php_module_startup()【请求初始化阶段】 php框架zend引擎 fpm 把work和master启动起来,master进程是常驻的,加载各个扩展代码到maste

2021-04-01 01:22:19 113

原创 Redis面试问题总结

1. Redis是单线程还是多线程?Redis 5以前是单线程,这里说的单线程不是Redis就一个线程,只不过是它的worker线程是单线程。主要要从工作机制的角度回答它的优缺点。比如:单线程图多线程图2. Redis缓存技术机制是什么?Redis插数据的时候,会同步一份保存在磁盘上,有两种保存方式AOF(AOF文件)当往Redis里面插数据时,会以日志的方式append追加到AOF文件中,所以AOF里面会有很多原始记录的操作语句,当恢复时会重新执行一遍,所以说存在对一个key重复操作

2021-03-29 22:55:19 94

原创 docker安装nginx+redis+php+mysql

docker安装nginx+redis+php+mysqlphpphp安装redisredis安装php安装redis扩展重启phpphp连接redisnginxnginx安装nginx配置php运行nginx运行并挂载nginx重启mysqlmysql安装mysql运行首先操作系统win10 并且按照了dockerphpphp安装 docker pull php:5.6-fpm #docker pull php 获取最新的phpredisredis安装docker pull redis

2021-03-29 19:20:01 519

原创 laravel8路由(一)

路由文件位置带参数和不带参数Route::get('/', function () { return view('welcome');});Route::get('/test',function(){ return 'f';});Route::match(['post','get'],'match',function (){ echo 'match';});Route::any('any',function(){ echo 'any';});.

2021-03-10 00:29:04 541

原创 初学WebRTC 实现音视频聊天

MediaDevicesenumerateDevices()可用的媒体输入和输出设备的列表,例如麦克风,摄像头,耳机,切换设备时用getDisplayMedia() 选择和授权捕捉用户选择的屏幕区域以及一个可选的音频轨道getSupportedConstraints()监视客户端所支持的约束属性,比如视频高宽,码率等getUserMedia()提示用户授权使用媒体输入,媒体输入会产生MediaStream,里面包含了请求的媒体类型的音视频A-> Create HTCPeerConnect

2020-12-29 00:36:06 756

原创 算法刷题

力扣上刷题清单

2020-12-28 10:02:23 72

原创 算法学习(二)

常数时间的操作: 执行时间固定的操作例如:常见的算术运算(+ - * / %)位运算赋值 比较 自增 自减数组寻址操作选排:选最小值交换,一次类推冒泡:每轮把大数移到最后插排:小数会换到前面二分:有序找值异或无进位相加 与顺序无关a = 12b = 67a = a ^ b a = 12 ^ 67b = a ^ b b = 12 ^ 67 ^ 67 = 12a = a ^ b a = 12 ^ 67 ^ 12 = 67实现了两个值得颠倒如果一个数组种只有一个

2020-12-26 16:36:42 78 1

空空如也

空空如也

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

TA关注的人

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