自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luyaran的博客

一名php小菜鸟的成长故事

  • 博客(92)
  • 资源 (16)
  • 问答 (17)
  • 收藏
  • 关注

原创 看官,PHP的垃圾回收机制(Reference Counting(引用计数))了解下不

    这个垃圾回收啊,说到底是对变量及其所关联内存对象的操作,所以在讨论PHP的垃圾回收机制之前,咱们先来简单了解下PHP中变量及其内存对象的内部表示(其C源代码中的表示)。    首先啊PHP中的变量划分为两类:标量类型和复杂类型。标量类型包括布尔型、整型、浮点型和字符串;复杂类型包括数组、对象和资源;还有一个NULL比较特殊,它不划分为任何类型,而是单独成为一类。然而所有这些类型,在PHP内...

2018-06-26 17:01:51 569 1

原创 浅谈php内存管理机制,各位看官了解下~~~

    说到这个内存管理机制啊,咱先不废话,来看段代码:<?php//内存管理机制var_dump(memory_get_usage());//获取内存方法,加上true返回实际内存,不加则返回表现内存$a = "luyaran";var_dump(memory_get_usage());unset($a);var_dump(memory_get_usage());//输出(在...

2018-06-26 14:14:00 1130

原创 PHP的zend引擎运行流程(opcode)了解下

    相信大家对PHP的核心架构图也是有所了解的,本人也就不做过多赘述了。这次咱们就来简单了解下这个核心中的核心---zend引擎。    百度上对它的定义是这样的:一个开源的脚本引擎(一个虚拟机)。它的优势也是明显的,首先它把边解释边运行的方式变为先进行预编译(compile),再执行(execute)的方式极大提高了php的运行效率和执行效率,其次由于实行功能分离,它还降低了模块间的耦合度,...

2018-06-25 14:08:58 787

原创 浅谈PHP代码执行的大致流程(opcode)

    说到这个代码执行流程啊,咱也不说太多,先给大家分享一张图片:    怎么样?有点了解了么。说实话,单看这个,我本人是有点懵的,不过,不要怕。咱们来慢慢地看下。    首先,在网上找的信息说PHP代码执行的顺序是这样的,第一步是词法分析,第二步是语法分析,第三步是转化为opcode,第四部也就是顺序执行这些opcode了。    聪明如各位看到这里,再返回上面看一下这张图片,肯定就会有不一样...

2018-06-22 17:27:52 5536 2

原创 关于PHP底层运行机制与原理的思考之建立一个简单的PHP核心架构图

    提到这个PHP底层的运行原理和机制,如果要用一张图来描述的话,相信大家的脑海里都会浮现下面的这张图:    诚然,PHP的核心架构确实是如上图所示。不管是让谁来说,也差不多就是这么多。但是,我今天写这篇博客的原因,无非就是加深下,自己对这个PHP核心架构的一些理解。    首先,从整体来说,PHP可以细分为四个层次。最核心的,就是Zend引擎。其次呢,就是和它搭配的EXT(extensio...

2018-06-21 13:46:30 2524

原创 PHP的一个有意思的小东西之EOF(heredoc) 使用说明

    PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。它的使用方式如下:1. 必须后接分号,否则编译通不过。2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何...

2018-06-20 11:34:52 1538 2

原创 关于PHP变量作用域(全局变量&局部变量)&global&static关键字

    我们知道,变量呢,其实就相当于我们用来储存信息的容器。关于它的命名规则什么的,相信大家也是比较清楚的,这里就不赘述了。这里呢,主要就来看PHP变量的两个作用域,全局变量&局部变量。    看到这两个变量作用域,相信大家脑海里会浮现两个单词global&static。没错,就是这两个词。    我们知道,在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本...

2018-06-20 11:12:41 3549

原创 从零开始学习Redis之PHP使用Redis&各种操作实例

    开始在 PHP 中使用 Redis 前,我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。其中安装PHP redis 驱动的步骤我就不赘述了,因为安装方式多种多样,最终在查看phpinfo的时候有如下样式,就算安装成功了:    我们直接来看PHP连接Redis的具体实例:<?php //连接本地的 Redis 服务 ...

2018-06-20 10:34:34 1970

原创 从零开始学习Redis之分区测试

    分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集。它的优势如下:通过利用多台计算机内存的和值,允许我们构造更大的数据库。通过多核和多台计算机,允许我们扩展计算能力;通过多台计算机和网络适配器,允许我们扩展网络带宽。    redis的一些特性在分区方面表现的不是很好:涉及多个key的操作通常是不被支持的。举例来说,当两个set映射到不同的redis实例上时,...

2018-06-20 10:24:20 227

原创 从零开始学习Redis之管道技术

    Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。    Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。首先我们来查看 redis 管道,只...

2018-06-20 10:20:02 411

原创 从零开始学习Redis之客户端连接的相关命令测试

    Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法然后创建一个可读的文件事件用于监听这个客户端...

2018-06-19 13:59:08 273

原创 从零开始学习Redis之性能测试的相关命令测试

    Redis 性能测试是通过同时执行多个命令实现的。redis 性能测试的基本命令如下:redis-benchmark [option] [option value]    以下实例同时执行 10000 个请求来检测性能:$ redis-benchmark -n 10000 -qPING_INLINE: 141043.72 requests per secondPING_BULK: ...

2018-06-19 13:57:12 806 2

原创 从零开始学习Redis之安全的相关命令测试

    我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。咱们来通过以下命令查看是否设置了密码验证:127.0.0.1:6379> CONFIG get requirepass1) "requirepass"2) ""    默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验...

2018-06-19 13:55:12 197

原创 从零开始学习Redis之数据备份与恢复的相关命令测试

    Redis SAVE 命令用于创建当前数据库的备份。redis Save 命令基本语法如下:redis 127.0.0.1:6379> SAVE     实例如下:redis 127.0.0.1:6379> SAVE OK    该命令将在 redis 安装目录中创建dump.rdb文件。    如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装...

2018-06-19 09:58:04 345

原创 从零开始学习Redis之服务器的相关命令测试

    Redis 服务器命令主要是用于管理 redis 服务。以下实例演示了如何获取 redis 服务器的统计信息:redis 127.0.0.1:6379> INFO# Serverredis_version:2.8.13redis_git_sha1:00000000redis_git_dirty:0redis_build_id:c2238b38b1edb0e2redis_...

2018-06-19 09:55:46 302

原创 从零开始学习Redis之连接 redis 服务的相关命令测试

    Redis 连接命令主要是用于连接 redis 服务。以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行:redis 127.0.0.1:6379> AUTH "password"OKredis 127.0.0.1:6379> PINGPONG    下表列出了 redis 连接的基本命令:序号命令及描述1AUTH password 验证密...

2018-06-19 09:54:02 758

原创 从零开始学习Redis之脚本的相关命令测试

    Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。Eval 命令的基本语法如下:redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]    以下实例演示了 redis 脚本工作过程:redis 127.0.0.1:6...

2018-06-19 09:52:08 268

原创 从零开始学习Redis之事务的相关命令测试

    Redis 事务可以一次执行多个命令, 并且带有以下三个个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。    一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。    以下是一个事务的例子, 它先以 MU...

2018-06-19 09:50:13 272

原创 从零开始学习Redis之发布订阅的相关命令测试

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:    当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它...

2018-06-19 09:47:09 1008

原创 从零开始学习Redis之HyperLogLog的相关命令测试

    Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。这和计算基数时,元...

2018-06-19 09:44:14 249

原创 从零开始学习Redis之有序集合(sorted set)数据类型的相关命令测试

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存...

2018-06-15 10:37:19 217 1

原创 从零开始学习Redis之集合(Set)数据类型的相关命令测试

    Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。来看个简单的例子:redis 127.0.0.1:6379> SADD keys redis(...

2018-06-15 10:33:51 238

原创 从零开始学习Redis之列表(List)数据类型的相关命令测试

    Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。来看个简单的例子:redis 127.0.0.1:6379> LPUSH keys redis(integer) 1redis 127.0.0.1:6379> LPUS...

2018-06-15 10:30:56 214

原创 从零开始学习Redis之哈希(Hash)数据类型的相关命令测试

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。来看个简单的例子:127.0.0.1:6379> HMSET keys name "redis tutorial" description "redis basic commands for cach...

2018-06-15 10:28:21 194

原创 从零开始学习Redis之字符串数据类型的相关命令测试

    Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME    来看个简单的例子:redis 127.0.0.1:6379> SET keys redisOKredis 127.0.0.1:6379> GET keys"redis"    在以上实例中我们使用了 S...

2018-06-15 10:25:42 195

原创 从零开始学习Redis之键(key)命令测试

    Redis 键命令用于管理 redis 的键。Redis 键命令的基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME    来看个简单的例子:redis 127.0.0.1:6379> SET lyrkey redisOKredis 127.0.0.1:6379> DEL lyrkey(integer) 1    在以上实例中...

2018-06-15 10:23:04 331

原创 从零开始学习Redis之redis命令测试

    Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。Redis 客户端的基本语法如下:$ redis-cli    以下实例讲解了如何启动 redis 客户端,启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务:$r...

2018-06-15 10:16:11 345

原创 从零开始学习Redis之数据类型详解&应用场景

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。我们接下来就来看下具体的信息。    首先是string(字符串)。string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的strin...

2018-06-15 09:59:41 255

原创 从零开始学习Redis之Redis配置问题&守护进程介绍

    Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。我们可以通过 CONFIG 命令查看或设置配置项。Redis CONFIG 命令格式如下:redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME    来看个简单的例子:redis 127.0.0.1:6379> CONFIG GET logle...

2018-06-15 09:46:53 879

原创 从零开始学习Redis之Ubuntu下安装Redis

    在 Ubuntu 系统安装 Redis 可以使用以下命令:$sudo apt-get install redis-server    然后我们来启动它:$ redis-server    出现如下界面算是启动成功:    然后我们重新打开一个远程putty,运行如下命令:$ redis-cli    完事出现如下界面:    127.0.0.1 是本机 IP ,6379 是 redis 服...

2018-06-15 09:39:46 299

原创 关于MySQL瓶颈分析与性能优化的一些思考

    这个提到mysql的一个优化和瓶颈分析,相信大家都不陌生,本人认为呢,一句话,就是在现有的资源上“读”&“写”之间的再平衡。这里呢,本人就谈一谈自己的一些见解(简单的总结而已,一些思考的方案)。    先说这个优化吧。MySQL数据库优化可以在多个不同的层级进行,常见的有sql优化,配置参数优化,数据库架构优化等这几方面。    其中这个sql优化,相信大家都不陌生。归根结底呢,就...

2018-06-14 13:28:43 2203

原创 PHP函数库之BC高精确度函数库

    bcadd — 将两个高精度数字相加    bccomp — 比较两个高精度数字,返回-1, 0, 1    bcdiv — 将两个高精度数字相除    bcmod — 求高精度数字余数    bcmul — 将两个高精度数字相乘    bcpow — 求高精度数字乘方    bcpowmod — 求高精度数字乘方求模,数论里非常常用    bcscale — 配置默认小数点位数,相当于就...

2018-06-14 11:02:37 7068

原创 解决php 上传图片造成内存溢出(Allowed memory size)

    图片上传,是网站开发常见的需求。通常来讲就是用户上传图片啊,完事后台进行处理。比如什么压缩啊,剪裁啊,生成缩略图啊什么的。在这个过程中我们有时候会遇到一个很奇怪的错误,那就是Allowed memory size。。。等等一串。    好吧,大家都知道,这是内存溢出了。完事我们修改配置文件中的相关参数来解决,成效很明显,大部分情况下我们完事了,成功了。但是不知道大家注意没,它默认的上传限制...

2018-06-14 10:49:59 2631

原创 从零开始学习Memcached之flush_al命令测试

    Memcached flush_all 命令用于清理缓存中的所有 key=>value(键=>值) 对。该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。flush_all 命令的基本语法格式如下:flush_all [time] [noreply]    清理缓存实例如下:set luyaran 0 900 9memcachedSTOREDget ...

2018-06-14 09:48:55 273

原创 从零开始学习Memcached之stats sizes命令测试

    Memcached stats sizes 命令用于显示所有item的大小和个数。该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。stats sizes 命令的基本语法格式如下:stats sizes    实例如下:stats sizesSTAT 96 1END...

2018-06-14 09:47:09 240

原创 从零开始学习Memcached之stats slabs命令测试

    Memcached stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。stats slabs 命令的基本语法格式如下:stats slabs    实例如下:stats slabsSTAT 1:chunk_size 96STAT 1:chunks_per_page 10922STAT 1:total_pages 1STAT 1:tota...

2018-06-14 09:45:56 346

原创 从零开始学习Memcached之stats items命令测试

    Memcached stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。stats items 命令的基本语法格式如下:stats items    实例如下:stats itemsSTAT items:1:number 1STAT items:1:age 7STAT items:1:evicted 0STAT item...

2018-06-14 09:44:43 998

原创 从零开始学习Memcached之stats命令测试

    Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。stats 命令的基本语法格式如下:stats    在以下实例中,我们使用了 stats 命令来输出 Memcached 服务信息:statsSTAT pid 1162STAT uptime 5022STAT time 1415208270STAT version 1.4.14STA...

2018-06-14 09:43:24 335

原创 从零开始学习Memcached之incr&decr命令测试

    Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。incr 命令的基本语法格式如下:incr key increment_value    ...

2018-06-13 13:30:37 306

原创 从零开始学习Memcached之delete命令测试

    Memcached delete 命令用于删除已存在的 key(键)。delete 命令的基本语法格式如下:delete key [noreply]    参数说明如下:key:键值 key-value 结构中的 key,用于查找缓存值。noreply(可选): 该参数告知服务器不需要返回数据    在以下实例中,我们使用 luyaran 作为 key,过期时间设置为 900 秒。之后我们...

2018-06-13 13:26:33 293

Redis面试知识点-一文概览全部内容

Redis面试知识点。。。全在这里了

2021-09-15

crypto-js.zip

aes加密js文件

2021-09-10

UML时序图绘制基础教程-0基础不要错过哟

时序图(Sequence Diagram),亦称为循序图、序列图、顺序图,是一种UML行为图。(翻译为时序图,实际上是不准确的,sequence这个单词并无“时间”的意思,只有序列,顺序等意思。)根据UML规范中对Sequence Diagram的描述: A sequence diagram describes an Interaction by focusing on 。。。

2020-09-30

PHP+node采集58微聊聊天信息

PHP+node采集58微聊聊天内容,仅仅是例子,不作为商业用途

2018-12-21

node执行百度搜索并且点击链接案例

包含目前为止最新的node环境,完事所附带的代码是访问百度首页,填入搜索词之后,点击搜索按钮,进行搜索,完事点击固定广告链接

2018-10-24

swoole聊天室核心代码案例

只有核心代码案例哦,不包括所有的案例哦,切勿搞错了,完事别再评论里骂我哦。 

2018-10-17

PHP抓取微信指数的小工具

该工具适合抓取微信指数的查询和抓取,安装步骤非常简单,有需要的童鞋可以私信和我联系,保证效率哦

2018-10-17

远程传递文件工具

可以远程传输文件的工具,特别适合不会使用ftp或者其他远程工具的各位小伙伴。

2018-10-17

各种浏览器的User-Agent信息包括手机端的浏览器

各种浏览器的User-Agent信息包括手机端的浏览器,需要使用模拟访问的各位,可以来试试,亲测可用哦。

2018-10-09

jQuery进度条比较灵活

简单的资源插件,比较灵活,希望可以帮助到大家。完事呢,这也是比较好用的

2018-06-29

个人使用PHP的各种字符串数组处理函数

详细记录了本人近段时间所使用的函数,当然啦,是自己封装的,有需要的可以共同学习下哈

2018-06-12

it技术图谱涵盖所有哦

it技术图谱涵盖所有哦,有需要的可以用来看看哦,先声明,不可以用来做一些其他文章的哦

2018-03-26

Git思维导图整理

本人搜集的各种Git集合,有学习方案还有具体功能介绍,均为图片,没有文档的哦

2018-03-26

curl 下载带进度条

封装的curl方式,可以用来下载,带有进度条的哦,很有点现实意义

2018-03-26

八种面试经验

面试经验

2016-12-31

PHP 超实用函数

PHP超实用函数

2016-12-14

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

TA关注的人

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