![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
「已注销」
这个作者很懒,什么都没留下…
展开
-
Redis事务
概述相信学过Mysql等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行。为什么会有这样的需求呢?看看下面的场景:微博是一个弱关系型社交网络,用户之间有关注和被关注两种关系,比如两个用户A和B,如果A关注B,则B的粉丝中就应该有A。关注这个动作需要两个步骤完成:在A的关注者中添加B;在B的粉丝中添加A。 这两个动作要么都执行成功,转载 2017-11-07 19:25:57 · 169 阅读 · 0 评论 -
脏读、幻读、不可重复读
1.脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。(读未提交)2.不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在原创 2017-11-15 09:58:35 · 151 阅读 · 0 评论 -
几种进程间的通信方式
管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其原创 2017-11-15 14:07:35 · 131 阅读 · 0 评论 -
mysql分区功能详细介绍,以及实例
一,什么是数据库分区前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,m转载 2017-11-15 14:36:38 · 163 阅读 · 0 评论 -
PHP正则匹配的函数
// $pattern = "/[0-9]/";// $subject = "aere7ewrwef2fwer2werwq4";// $replacement = "力";$pattern = array("/[0123]/","/[456]/","/[789]/");$subject = array("0wer","51fas","asfas");$replaceme原创 2017-12-31 12:03:53 · 519 阅读 · 0 评论 -
空间复杂度
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。比如直接插入排序的时间复杂度是O(n^2),空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。原创 2017-12-26 19:41:51 · 296 阅读 · 0 评论 -
Yii框架事务的使用
Yii2中事务的使用以及代码实例前言一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题。数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全转载 2018-01-03 23:21:34 · 973 阅读 · 0 评论 -
php 接口如何使同一用户在规定时间内访问规定的次数
有时候我们需要限制一个API访问的频率,例如单用户一分钟之内只能访问多少次。 类似于这样的需求很容易用Redis来实现。 php $redis = new Predis\Client(array( 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => '6379' )); $转载 2017-12-29 20:08:46 · 6993 阅读 · 0 评论 -
foreach修改一个数组值的问题
foreach($array as $k => $v){ $v = 1;}这样的修改方法修改的并不是$array本身,是修改它拷贝的一个数组,虽然一样但不是$array.所以对$array没有影响。那么要怎么做?要这样做:foreach($array as $k => $v){ $array[$k] = 1;}虽然$k和$v一样也原创 2017-12-29 20:49:38 · 2228 阅读 · 0 评论 -
Mysql数据类型括号里的数字究竟是字节还是字符?
实例是最好的说明,所以,废话少说,看表看例子~mysql> show create table test_varchar_utf8\G*************************** 1. row *************************** Table: test_varchar_utf8Create Table: CREATE TABLE `test_v...转载 2018-04-26 23:14:40 · 1018 阅读 · 0 评论 -
PHP的运行机制与原理(底层)
php看着很简单,但是要深入php的运行机制与原理也不是件容易的事,我们除了会使用之外还要知道它底层的工作原理,这样才能灵活的运用,对php运行机制感兴趣的朋友一起学习吧说到php的运行机制还要先给大家介绍php的模块,PHP总共有三个模块:内核、Zend引擎、以及扩展层;PHP内核用来处理请求、文件流、错误处理等相关操作;Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;扩...原创 2018-04-26 23:19:27 · 204 阅读 · 0 评论 -
MongoDB范式化与反范式化
范式化:将数据分散到多个不同的集合,不同集合之间可以相互引用数据。如果要修改数据,只需修改保存这块数据的文档就行。但是MongoDB没有连接(join)工具,所以在不同集合之间执行连接查询需要进行多次查询。反范式化:将每个文档所需的数据都嵌入在文档内部。每个文档都有自己的数据副本,而不是所有文档共同引用一个数据副本。但是如果数据发生变化,那么所有相关文档都需要进行更新。范式化能够提原创 2017-11-14 20:50:03 · 1081 阅读 · 0 评论 -
6种负载均衡算法
1、轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。2、随机法 通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。原创 2017-11-14 20:18:56 · 2185 阅读 · 0 评论 -
HTML和XHTML的区别
XHTML 元素必须被正确地嵌套。XHTML 元素必须被关闭。标签名必须用小写字母。XHTML 文档必须拥有根元素。原创 2017-11-14 15:57:25 · 142 阅读 · 0 评论 -
git自动部署
1.在服务器上创建一个git创库git --bate init mynewpro ./2.切到mynewpro目录中3.切到hooks中4.如果没有post-update就使用命令cp post-update.sample post-update5.vim编辑post-update加入以下代码--work-tree原创 2017-11-07 19:28:04 · 248 阅读 · 0 评论 -
Redis的五种存储类型和其应用场景
常用数据类型简介:redis常用五种数据类型:string,hash,list,set,zset(sorted set).1.String类型String是最简单的类型,一个key对应一个valueString类型的数据最大1G。 String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby、decr、decrby),这种情况下,转载 2017-11-07 20:12:58 · 274 阅读 · 0 评论 -
全文搜索引擎 Elasticsearch 入门教程
全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提转载 2017-11-07 20:31:19 · 133 阅读 · 0 评论 -
浅析MySQL数据碎片的产生
MySQL列表,包括MyISAM和InnoDB这两种最常见的类型,而根据经验来说,其碎片的产生及消除都是随机的。碎片会在你的表格中留下明显的空白,而这会给列表扫描工作带来相当大的困扰。对你的列表进行优化,这样会使列表的全面及分区扫描工作进行得更有效率。作者:核子可乐译来源:51CTO|2011-03-30 09:28 移动端 收藏 分享转载 2017-11-08 09:26:25 · 2474 阅读 · 0 评论 -
PHP的运行机制与原理(底层)
php看着很简单,但是要深入php的运行机制与原理也不是件容易的事,我们除了会使用之外还要知道它底层的工作原理,这样才能灵活的运用,对php运行机制感兴趣的朋友一起学习吧说到php的运行机制还要先给大家介绍php的模块,PHP总共有三个模块:内核、Zend引擎、以及扩展层;PHP内核用来处理请求、文件流、错误处理等相关操作;Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行转载 2017-11-02 11:19:06 · 186 阅读 · 0 评论 -
排它锁和共享锁
排它锁也称独占锁、写锁或X锁,若sessionA获得某数据表的排他锁权限,那么sessionA只能对该表进行读取或修改,其他session既不能读取也不能修改该表,更不能对该表加任何类型的锁,直到sessionA释放排它锁权限。加锁方式:lock tables tablename write;操作如下: sessionA: sessionB: 从上图操作可以看出sessio转载 2017-11-17 12:37:26 · 1378 阅读 · 0 评论 -
PHP值传递和引用传递的区别。什么时候传值什么时候传引用
(1)按值传递:函数范围内对值的任何改变在函数外部都会被忽略(2)按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改(3)优缺点:A:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。B.按引用传递则不需要复制值,对于性能提高很有好处。转载 2017-11-13 15:04:35 · 1017 阅读 · 0 评论 -
PHP静态方法和非静态方法的区别
静态方法在定义类的时候就已经装载分配好了,非静态方法在定义时没有占用内存,只有实例化为对象时才会被分配内存非静态方法可以调用静态方法或静态属性 而静态方法不可以调用非静态成员 但 可以调非静态方法(因为系统自动把非静态方法转化为静态方法) 类外调用静态方法时不需要实例化类也可以调用静态方法 可以直接类名调用静态方法名原创 2017-11-17 16:56:55 · 1170 阅读 · 0 评论 -
学习Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全转载 2017-11-13 21:11:00 · 114 阅读 · 0 评论 -
memcache的工作原理
memcache是以key-value形式存储的,key会通过一个hash表转换成hash的key,便于查找对比。客服端通过key的hash值确定数据的位置,然后向服务端发出请求,获取真实的数据。原创 2017-11-17 21:09:49 · 207 阅读 · 0 评论 -
PHP内存管理机制与垃圾回收机制
转发地址:https://www.cnblogs.com/zk0533/p/5667122.htmlPHP内存管理机制1 var_dump(memory_get_usage()); //获取内存2 $a = "laruence"; //定义一个变量3 var_dump(memory_get_usage()); //定义变量之后获取内存转载 2017-11-14 09:27:18 · 177 阅读 · 0 评论 -
什么是共享锁和排它锁
共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。排它锁,也称独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。原创 2017-11-14 14:36:38 · 1468 阅读 · 0 评论