自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菅兵琪的博客

最初的梦想,最真的少年!

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

原创 关于IO的一些枯燥理论

同步,异步,阻塞,非阻塞,甚至是同步阻塞,同步非阻塞,异步阻塞,异步非阻塞.是不是晕了?截至到目前为止,你可以简单地认为只要搞明白这几个名词的含义以及区别,就算弄明白IO了,至少了可以继续往下看了.如果你仔细品过上面案例中的每一个字,你就能慢慢体会到之所以异步和非阻塞,同步和阻塞容易混淆,仅仅是因为二者的表现形式稍微有点儿相似而已.阻塞和非阻塞关注的是: 在等馒头的过程中,你在干啥.同步和异...

2019-09-19 10:09:47 134

原创 高效的索引策略

、高效的索引策略1.1、索引列不能是表达式的一部分,也不能作为函数的参数,否则无法使用索引查询。SELECT * FROM user_test WHERE user_name = concat(user_name, ‘fei’);1.2、前缀索引有时候需要索引很长的字符列,这会增加索引的存储空间以及降低索引的效率,一种策略是可以使用哈希索引,还有一种就是可以使用前缀索引,前缀索引是选择字符...

2019-09-18 15:40:13 252

转载 从 0 到 1 优雅的实现PHP多进程管理

https://mp.weixin.qq.com/s/lbGCQu7zkKUfPhFMFbHooQ

2019-06-26 14:34:08 142

原创 php的多进程实验分析

pcntl_fork — 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0。<?phpfwrite(STDOUT, "stat>" . PHP_EOL.PHP_EOL);$count = 3;for ($i = 0; $...

2019-06-26 14:31:29 141

原创 PHP进阶之路

https://www.kancloud.cn/xiak/php-node

2019-06-26 14:25:42 2456

原创 Python(第二篇)

十五、迭代 for in 循环在python里不但list tuple可以for in 迭代,字典dict和字符串都可以进行迭代1、list a = [1,2,3,4] for i in a: print(i)2、tuple a =(2,3,4) for i in a: print(i)3、 字典dict >> d = {'a': 1, 'b': 2, 'c...

2019-03-26 10:49:49 93

原创 Python(第一篇)

一、整数–没有最大限制 超过范围inf1、int() 强制装换整型二、浮点数–没有最大限制 超过范围inf1、除法/和// /得到的永远是浮点型 9/3 >>>3.0 //得到的永远是整型 10//3 >>>3三、字符串–单引号、双引号 转义字符 /1、str是不变对象 例:a = 'abc' b = a.replace('a',...

2019-03-25 18:43:14 154

原创 为什么分布式一定要有Redis?

考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。所以我斗胆以 Redis 为题材,对 Redis 常见问题做一个总结,希望能够弥补大家的知识盲点。本文围绕以下几点进行阐述: 为什么使用 Redis 使用 Redis 有什么缺点 单线程的 Redis 为什么这么快 Redis...

2018-09-26 09:28:55 195

原创 mysql表的垂直拆分和水平拆分

垂直拆分垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分:把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在一张表中;垂直拆分更多时候就应该在数据表设计之初就执行的步骤,然后查询的时候用jion关键起来即可;水平拆分水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的...

2018-09-25 10:03:20 172

原创 【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合

需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中;存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮。问题分析思考:应用网站架构的衍化过程中,应用最新的框架和工具技术固然是最优选择;但是,如果能在现有的框架的基础上提出简单可依赖的解决方案,未尝不是一种提升自我的尝试。解决:问题一:要求日志最好入库;但是,直接入库mysql确实扛不住...

2018-08-14 14:25:40 365

原创 mysql分库分表实战及php代码操作完整实例

**当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那 分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间**分库:1)按功能分 用户类库、商品类库、订单类库、日志类、统计类库… 2)按地区分 每个城市或省市一个同样的库,加上后缀或前缀如:db_click_bj、db_click_sh…分表:1、横向分表 解决表记录太大问题 1)按某个字段分...

2018-08-06 09:25:16 2577

原创 PHP 常见算法

冒泡排序$arr=array(1,43,54,62,21,66,32,78,36,76,39); /** * [getPao 就是像冒泡一样,每次从数组当中 冒一个最大的数出来] * @param [type] $arr [数组] * @return [type] [description] */function getPao($arr){ $len = cou...

2018-08-03 14:18:38 139

原创 Session 共享方案

要说分布式session,其实要明确两点:分布式系统和session分别是什么?一、什么是分布式系统?分布式系统:旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素组成,不共享内存,通过网络发送消息合作。分布式系统的三个特点: 多节点,消息通信,不共享内存。 二、 什么是session?广义的session:指会话控制。由于http协议是无状态的,对于不同h...

2018-08-02 16:54:54 139

原创 关于分布式和集群(一)

**架构-分布式与集群的区别**先说区别:**一句话:分布式是并联工作的,集群是串联工作的。 简单说:***分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。*** 【分布式】是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 ...

2018-08-02 16:29:10 198

原创 PHP 中memcach 的使用(一)

记得一定要先启动Memcached哦![root@localhost ~]# /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root使用ps命令查看一下运行状态:[root@localhost ~]# ps -ef | grep memcached 显示运行成功! 接下来就开始使用PHP操作Memcach...

2018-08-01 16:36:58 421

原创 关于memcache

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Window 下配置 一、配置memcache server 服务器 1.下载memcached软件包,下载地址:http://pan.baidu.com/s/1boAnghp 解压,把memcached.e...

2018-08-01 14:46:21 127

原创 Mysql 常用内置函数

****MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值。 3)在程序设计语言如C++中提供的函数,MySQL大部分也提供了,关于MySQL函数的完整信息,请参阅《MySQL参考手册》** 重点内容 一、字符串函数【比较常用,需要掌握】...

2018-08-01 11:17:59 222

原创 关于mysql 那些我以前不知道的事(持续)

1、Count(*), Count(1) 和Count(字段)的区别 count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和count(*)的效果是一样的。 但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。 如...

2018-08-01 10:51:36 214

原创 PHP7新特性-语法篇

1,PHP5发行的时候为了讨好ASP程序员,PHP准备了asp_tags全部被禁止 在未来没有&lt;% %&gt; 这种风格,PHP也不再支持这种风格的声明。&lt;script language="php"&gt;&lt;/script&gt;2,PHP4的语法风格中的一些东西将被,例如构造函数的用法,会在新的PHP7中完全被抛弃。PHP7将会提示一个: E_DEPRECA...

2018-08-01 10:13:53 3073

原创 MySQL的四种事务隔离级别

本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID)  1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。   2、一...

2018-08-01 09:40:44 168

原创 mysql -乐观锁和悲观锁

最近因为在工作中需要,学习了乐观锁与悲观锁的相关知识,这里我通过这篇文章,把我自己对这两个“锁家”兄弟理解记录下来; - 悲观锁:正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)的修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则...

2018-08-01 09:39:05 103

原创 Mysql-索引

1.定义 Mysql官方对索引的定义为:索引是帮助mysql高效获取数据的数据结构。 2.优势和劣势优势:类似大学图书馆建数目索引,提高数据检索的效率,降低数据库的io成本。 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。劣势:实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要占用空间的。 虽然索引大大提高了查询...

2018-08-01 09:34:26 115

转载 【系统架构】亿级Web系统搭建(1):Web负载均衡

【系统架构】亿级Web系统搭建(1):Web负载均衡2017-12-22 hanbing 码农有道 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要通过搭建不同的服务和架构来解决。当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量...

2018-03-23 13:32:32 203

转载 记因PHP的内存溢出导致的事故之解决

今天上午刚到公司,就有同事在公司群里反映某个计划任务出现问题了。我就怀着刨根问底的心,去查看了log。发现挺有意思的一个问题,PHP内存溢出导致脚本执行失败。那就一起来看个究竟吧!首先查看了计划任务的Log记因PHP的内存溢出导致的事故之解决从报错信息字面意思可以看出,允许的134217728 bytes的内存已经用尽,还要试图分配12961640 bytes 内存。给你(当前脚...

2018-03-23 13:15:50 1215

空空如也

空空如也

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

TA关注的人

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