自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

单炒饭

没有什么能让你加班的 如果有就通宵~

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

原创 面试题

序列化和json区别? serialize在编码后大概是json的两倍。 原因: serialize后字符串包含了子串的长度,这可能是速度方面的优化,典型的空间换时间,但是它本身还是太重了。 serialize有更加详细的类型区分,而json只有四种类型,并且是以简单的符号表示。 serialize的速度在大数据量的情况下比json差了快一个数量级。 从上面两点看,json不管是在速度还...

2020-04-20 12:09:27 669

转载 OAuth2.0认证流程原理

导读 大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ、微信或者微博等账号进行授权登陆。例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微信账号进行授权登录。这样的场景还有很多,例如登录微博、头条等网站,也都可以选择QQ或者微信登录的方式。 那么这样的第三方登陆方式到底是怎么实现的呢?难道是腾讯把我们QQ或者微信的账户信息卖给了...

2020-04-15 10:02:38 11140 2

原创 基础排序算法

public class Sort { public static void quickSort(Integer[] arr, int low, int high) { int temp = arr[low]; int i = low; int j = high; if (low >= high) { ...

2020-03-10 15:27:29 395

原创 MySQL面经

MySQL面经 面试中经常是由浅及深顺着一条线问下去 , 下面仅列出 我遇到过的面试问题: 1.基础三连问 关系型数据库与非关系型数据库有什么区别? MySQL有哪些存储引擎?有什么区别? 项目中mysql优化? 合理的字段类型 char varchar int 字段定义为not null SQL优化键索引 ....... 索引的类型有哪些? 主键索引普通索引...

2020-02-24 23:27:15 496

转载 PHP是单线程还是多线程?

PHP 从设计之初到流行起来都没有出现明显需要用多线程才能解决的需求。某些需要用到多线程的地方也有相应的解决方案和替代方案。多线程并不总是比单线程优,多线程可能会引入其他问题(例如:两个线程同时调用一个类里的同一个方法时,可能出现死锁的情况)。 你可以这样理解 对应一个客户的一个页面请求处理的php 是单线程处理的, 这样一来就可以自上而下的去编辑/理解代码中的业务逻辑了, 但是 ...

2020-02-24 17:31:04 624

转载 事务详解

一、事务概述   二、事务的特性   三、事务的隔离问题 一、事务概述   事务很好理解,就是要做的事情,而这件事情是由一系列的动作完成,这些动作要么全部完成,要么全部不起作用。也就是说如果一个动作没有完成,其他所有的动作都将回到初始状态。这就是事务,在操作数据时经常会用到事务。   可能说的比较抽象,如果大家还不理解,那么我就给大家举个生活中最常见的例子。比如说转账这件事情,它是由付款和收...

2020-02-19 15:27:38 283

原创 MySQL事务之可重复读

在事务的并发操作中,也就是多个事务同时对同一组数据进行操作时,可能会出现脏读、不可重复读、幻读、丢失更新这四个问题,本篇博客就来为大家讲解 不可重复读 问题。 一、不可重复读概述 不可重复读 就是一个事务读到另一个事务修改后并提交的数据(update)。在同一个事务中,对于同一组数据读取到的结果不一致。比如,事务B 在 事务A 提交前读到的结果,和在 事务A 提交后读到的结果可能不同。不可重复读...

2020-02-19 11:02:28 1635

转载 日志管理Rsyslog

日志管理Rsyslog [TOC] 背景 有一个4台机器的分布式服务,不多不少,上每台机器上查看日志比较麻烦,用Flume,Logstash、ElasticSearch、Kibana等分布式日志管理系统又显得大材小用,所以想到了centos自带的rsyslog。 简介 Rsyslog可以简单的理解为syslog的超集,在老版本的Linux系统中,Red Hat Enterprise...

2020-02-05 10:57:55 550

转载 Mac/Homebrew查找nginx安装目录和nginx.conf配置文件目录

Mac/Homebrew查找nginx安装目录和nginx.conf配置文件目录 1. nginx安装目录 2.nginx.conf配置文件目录 3. 启动/暂停/重载 1. nginx安装目录 $ ps -ef | grep nginx 1 安装目录就在:/usr/local/opt/nginx/bin/nginx,如下 zhangguoyedeMacBook-Pro:nginx zhangg...

2020-02-04 19:09:35 4342

原创 三数之和

给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] /*...

2020-01-17 17:48:52 203

转载 两数之和

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] class...

2020-01-17 13:52:29 374

原创 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 思路:哈希映射 首先判断两个字符串长度是否相等,不相等则直接返回 false 若相等,则初始化 26 个字母哈希表,遍历字符串 s 和 t s 负责在对应位置增加,t 负责在对应位置减少 如果哈希表的值都为 0,则二...

2020-01-16 18:31:35 203

原创 输出滑动窗口最大值(双端队列)

给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] import java.util.ArrayDeque; import java....

2020-01-16 17:29:19 352

原创 实时判断数据流中的第K大元素

int k = 3; int[] arr = [4,5,8,2]; KthLargest kthLargest = new KthLargest(3, arr); kthLargest.add(3);// returns 4 kthLargest.add(5);// returns 5 kthLargest.add(10);// returns 5 kthLargest.add(9...

2020-01-14 15:53:14 345 1

原创 优先队列

堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的常用方法: 构建优先队列 支持堆排序 快速找出一个集合中的最小值(或者最大值) 堆属性 堆分为两种:最大堆和最小堆(小顶堆和大顶堆),两者的差别在于节点的排序方式。 在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节点的值都要小。这就是...

2020-01-14 15:46:43 174

原创 用栈实现队列

使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 import java.util.Stack; public class MyQueue { private Stack<Integer> stackPush; ...

2020-01-14 13:50:09 241

原创 Java单链表基本操作

单链表的结构 单链表的存储原理图,head为头节点,他不存放任何的数据,只是充当一个指向链表中真正存放数据的第一个节点的作用,而每个节点中都有一个next引用,指向下一个节点,就这样一节一节往下面记录,直到最后一个节点,其中的next指向null。 代码实现单链表 链表节点的定义 链表是由一个个节点连接形成的,先定义节点类,节点类主要分数据和next指针 public class...

2020-01-09 12:11:28 293

转载 常见hash算法的原理

散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。...

2019-08-01 10:17:27 1146

转载 linux使用flock文件锁解决crontab冲突问题

linux的crontab命令,可以定时执行操作,最小周期是每分钟执行一次。关于crontab实现每秒执行可参考我之前的文章《linux crontab 实现每秒执行》 现在有个问题,如果设定了任务每分钟执行一次,但有可能一分钟内任务并没有执行完成,这时系统会再执行任务。导致两个相同的任务在执行。 例如: <? // test.php for($i=0; $i<300; $i++...

2019-04-23 13:23:03 298

转载 Saga分布式事务解决方案与实践

Saga分布式事务解决方案与实践 我先介绍一下我自己,我叫姜宁,来自于华为开源研究中心,现在负责的是ServiceComb这个开源项目。ServiceComb这个项目已经进到Apache孵化,应该是去年11月份时进到Apache孵化的,这个月我们帮刚发了1.0M1版,但对于SAGA来说我们属于探索的阶段,发布了0.1.0。 我参与过Apache一些项目,我也是Apache的 Member,...

2019-04-12 14:13:28 11495 4

转载 DTP模型之一:(XA协议之一)XA协议、二阶段2PC、三阶段3PC提交

XA协议 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。XA实现分布式事务的原理如下: XA接口详解 X/Open XA接口是双向的系统接口,在事务管理器(Transaction Mana...

2019-04-12 14:06:41 668

转载 分布式事务解决方案

数据库事务 在说分布式事务之前,我们先从数据库事务说起。 数据库事务可能大家都很熟悉,在开发过程中也会经常使用到。但是即使如此,可能对于一些细节问题,很多人仍然不清楚。比如很多人都知道数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是ACID。但是再往下比如问到隔离性指的是什...

2019-04-12 14:02:38 197

转载 PO,BO,VO和POJO的区别

PO:persistent object 持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。 2 .在hibernate持久化框架中与insert/delet操作密切相关。 3 .PO中不应该包含任何对数据库的操作。 POJO :plain ordinary java object 无规则简单java对象 一个中间对象,可以...

2019-03-27 19:32:03 592

转载 一文读懂网络通信技术原理

一、网络的由来? 互联网的本质就是一系列的网络协议。 一台硬设有了操作系统,然后装上软件你就可以正常使用了,每个人都拥有一台自己的机器,然而彼此孤立。 如何能让大家一起玩耍,就有了初步的网络,其实两台计算机之间通信与两个人打电话之间通信的原理是一样的,普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一...

2019-02-11 10:05:53 6252 2

转载 MySQL InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解

MySQL/InnoDB的加锁,一直是一个面试中常问的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?我在工作过程中,也会经常用到,乐观锁,排它锁,等。于是今天就对这几个概念进行学习,屡屡思路,记录一下。 注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍,都是基于InnoDB存储引擎,其他引擎的表现,会有较大的区别。 乐观锁和悲观锁的区...

2018-12-22 16:22:32 356

转载 mysql 锁

读锁(read lock,也叫共享锁): 不会阻塞其他用户对锁定数据的读请求,但会阻塞对锁定数据的写请求。 写锁(x lock,也叫排它锁): 会阻塞其他用户对锁定数据的读和写操作。 InnoDB行锁实现方式     InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味者:只有通过索引条...

2018-12-18 15:28:25 317

转载 Yii2一些方法技巧小记

https://blog.csdn.net/qq_16885135/article/details/52642952

2018-11-19 15:51:10 222

原创 主表和附表的关联关系,普通字段就可以实现为什么还要有主键外键?之间有什么关系

主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。 外键  外键(FK)是用于建立或加强两个表数据之间的链接的一列...

2018-11-19 10:50:34 4829

转载 位运算

位运算基础 &amp;  按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0 |  按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1 ^  按位异或 若参加运算的两个二进制位值相同则为0,否则为1 ~  取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1 &lt;&lt;  左移 用来将一个数的各二进制位全部左移N位,右补0 &gt;&gt;  右移 将...

2018-11-02 16:25:45 875

原创 windows配置本地的虚拟主机

1. 打开apache 配置文件httpd.conf ,找到mod_rewrite.so,去掉注释 2.apache 配置文件httpd.conf ,找到httpd-vhosts.conf,去掉注释 3.打开httpd-vhosts.conf文件,配置本地虚拟主机路径和域名 4.打开hosts文件,C:\Windows\System32\drivers\etc目录下。配置域名解析...

2018-11-02 10:41:34 2511

转载 PHP获取真实客户端的真实IP REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。  HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。 $_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)...

2018-11-01 14:01:23 2650

转载 负载均衡器技术Nginx和F5的优缺点对比

对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。 目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。 我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里就简单介绍下这两种技术: a.软件负载均衡解决方案 在一台服...

2018-10-30 10:03:15 248

转载 F5负载均衡原理

一、 负载均衡技术                                                                                                                                                     负载均衡技术在现有网络结构之上提供了一种廉价、有效、透明的方法,来扩展网络设备和服...

2018-10-30 10:02:32 447

转载 只需一个技巧,用手机轻松拍出震撼广角风景照

使用手机拍照已经称为我们生活日常,随着手机摄像头像素越来越高,人们对于手机拍照的追求也从「拍得到」变成了「拍得好」。 可是,为了拍出好照片而去学习其需要的构图功力和光线配合等教程对于大多数人来讲都「不太值」。 其实,要获得一张吸睛的照片并不难,有很多简单的小技巧都能轻松让任何人都能拍出好看的照片,今天我就教大家一个简单的技巧,轻松拍出更加震撼的风景照片。   ▎利用广角让风景更震撼 ...

2018-09-24 10:09:32 8688

转载 MySQLl优化【附带优化视频教程全套】

可以从以下几个方面对MySQL进行优化,  效果: SQL和索引 &gt; 数据库表结构 &gt; 系统配置 &gt; 硬件  但成本从低到高。 1.SQL和索引优化 1.1SQL 1.1.1优化SQL语句的一般步骤: ①通过show status 命令了解各种SQL的执行效率, show [session | global] status;   可以根据需要加上参数来显示ses...

2018-09-14 09:48:53 3366 10

转载 分析一个在高并发下的财务支付锁的问题

在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误。下面将分析一个财务支付锁的问题。希望对大家有所帮助。   1,在没有应用锁机制的情况下 1.1 财务支付简化版本代码 &lt;!--?php  /**   * pay.php   *   * 支付没有应用锁  *   * Copy right (c) 2016   *   * modific...

2018-09-14 09:44:10 2981

转载 PHP面试知识梳理

关于作者 昨天在思否上发了这篇整理,晚上10点多看到了很多赞收藏和关注,其实挺愧疚的,因为最近在找工作这篇文章并没有整理完。看到这个还挺受欢迎的,也因为新工作基本定下来了,现在的公司正常交接中,打算下周末之前把这个知识梳理整理完,感谢各位的点赞、收藏和关注,大家一起努力。 另外,我自己的博客网站在这,哈哈:https://www.linganmin.cn 算法与数据结构 BTree和B+t...

2018-09-14 09:39:29 674

转载 PHP获取二维数组中某一列的值集合

有一个二维数组,如下: $arr = array( 0 =&gt; array( 'id' =&gt; 1, 'a' =&gt; 'xxxx', 'b' =&gt; 'abc', ), 1 =&gt; array( 'id' =&gt; 2, 'a' =&gt; 'yyyy', 'b' =&gt; 'abcd', ), ...

2018-09-13 16:24:15 3251

转载 SQL语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据

SQL语句如下: 查询当天的所有数据   SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW()) = 0 SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());   查询昨天的所有数据   SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1...

2018-09-04 16:07:54 28253

转载 php yaf框架扩展实践一——配置篇

配置文件基本可以说是每个项目都会有,在配置文件中我们通常会配置数据库访问地址、redis连接、url地址等等。早年开发的时候经常碰到这样麻烦的问题:就是本地开发环境的配置和测试环境、生产环境的配置都不全一样,像数据库连接配置、url地址配置等,每次更新项目到测试环境、生产环境的时候都需要修改配置,真的是非常麻烦。 幸好yaf对于配置文件的解析提供了节(section)的支持,并且还支持节之间的继...

2018-08-31 13:19:30 1075

空空如也

空空如也

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

TA关注的人

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