PHP
文章平均质量分 89
IM魂影
什么都懂一点点,奔向全栈的路上!
展开
-
使用Redis的bitmaps统计用户留存率、活跃用户
首先我们看一个场景:一个网站,需要统计一周内连续登陆的用户,以及一个月内登陆过的用户或者是用户留存率。如果用传统的数据库如Mysql来实现的话,很难做到。但如果用Redis来做的话,就很简便。Redis的集合类型和Bitmap类型都可以很容易的做到。今天,我们主要来谈谈如何用Bitmaps来实现统计活跃用户的功能。什么是 BitmapsBitmaps 并不是实际的数据类型,而是定义在String类型上的一个面向字节操作的集合。因为字符串是二进制安全的块,他们的最大长度是512M,最适合设置成2^32个转载 2021-06-16 19:32:07 · 737 阅读 · 0 评论 -
PHP使用Solr全文搜索引擎
前言 本来以为网上已经有了类似博文,不想重复,可是一圈搜下来,都是一些内容不甚明了的文章,或者solr版本太过老,参考价值不高,更有甚者,直接拷贝的别人的内容。一篇博客,各大平台都能看到,也不见转载链接。有人说百度搜索不到内容,用谷歌,把责任推到百度身上,但这是百度的原因吗?在国内网络的资源整体质量不高低,并且内容太多重复的情况下,百度能够提供什么高质量的内容给你。也有我搜索资源的时候,会看到IB转载 2017-11-20 11:10:10 · 2681 阅读 · 0 评论 -
PHP高手之设计模式
模式这些模式可以分为三个大类。1. 创建型在软件工程中,创建型设计模式是处理对象创建机制的设计模式,试图以适当的方式来创建对象。对象创建的基本形式可能会带来设计问题,亦或增加了设计的复杂度。创建型设计模式通过控制这个对象的创建方式来解决此问题。2. 结构型在软件工程中,结构型设计模式是通过识别实体之间关系来简化设计的设计模式。3. 行为型在软件工程中,行为设计模式是识别对象之间的通用...原创 2020-03-01 11:50:31 · 323 阅读 · 0 评论 -
Window环境PHP7使用Protobuf开发详解
安装Protoc用于生成PHP代码下载地址: https://github.com/protocolbuffers/protobuf/releases选择Window平台下载地址这里选择最新版https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-win64.zip下载后选...原创 2020-02-16 18:00:42 · 2378 阅读 · 1 评论 -
Python虚拟环境安装Sentry
Sentry 简介Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC...转载 2020-01-15 10:58:36 · 953 阅读 · 0 评论 -
Swoole整合PHP性能分析平台: Tideways+Xhgui
简介最近在公司使用EasySwoole开发一个项目, 发现一些性能问题, 想安装个PHP性能调试工具监控调试一下,看看性能差在哪里。找到了一个Facebook开源的PHP性能分析工具Xhprof。Xhprof可以报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。但是facebook但已经很久不更新,官方源已经显示This package is abandoned and...原创 2020-01-11 17:04:40 · 4636 阅读 · 2 评论 -
CentOS搭建异常监控服务平台:Sentry
简介Sentry 是一个实时事件的日志聚合平台。它专门监测错误并提取所有有用信息用于分析,不再麻烦地依赖用户反馈来定位问题。Sentry发展多年,几乎没有同类产品可与其媲美。它能覆盖大部分的主流编程语言与框架,很适合应用到实际生产环境中采集异常日志。Sentry 中文翻译过来是 哨兵 的意思,不错,Sentry 是程序的 哨兵 ,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错...原创 2020-01-08 15:52:03 · 4019 阅读 · 4 评论 -
PHP编译支持SQLite3加密扩展
自PHP 5.3.0起默认启用SQLite3扩展,但是由于SQLite 3 开源版不带加密功能,如果想使用加密功能需要用他的商业版本。这导致PHP默认的SQLite扩展本身是不支持加密功能,只预留了相关的接口,详见官方文档介绍:An optional encryption key used when encrypting and decrypting anSQLite database. I...转载 2019-11-01 18:19:16 · 1882 阅读 · 0 评论 -
Composer基本使用
Composer基本使用1、composer update、composer install 与 composer require的区别Composer update:根据composer.json文件的包依赖关系将包更新到最新版本,并将版本依赖信息更新到composer.lock文件中;Composer update vendor/package:从composer.json获...原创 2019-10-12 15:43:07 · 821 阅读 · 0 评论 -
phpize 编译安装php扩展出现Cannot find autoconf解决办法
运行/usr/local/webserver/php/bin/phpize时出现:Configuring for:PHP Api Version: 20041225Zend Module Api No: 20060613Zend Extension Api No: 220060519Cannot find autoconf. Please check you...转载 2019-04-21 21:56:32 · 793 阅读 · 0 评论 -
编译安装Swoole4.3.3详细步骤
安装PHP 7.3.1https://blog.csdn.net/uisoul/article/details/86631469下载Swoolewget https://github.com/swoole/swoole-src/archive/v4.3.3.tar.gz解压tar -xzvf v4.3.3.tar.gz#### 编译安装phpize && \...原创 2019-04-21 22:18:35 · 1123 阅读 · 0 评论 -
PHP高性能框架选择
在不用缓存、集群之类东东只情况下,PHP框架哪家强?我指的是高并发高负载,并且适合做大型项目的。高负载不是一个语言的问题,这个讨论的范围已经超出了PHP:1、如果同一类型的的框架(指都是为了解决某类问题,比如CMS,论坛等乖)是比较成熟的,那么在生产环境,大家的差异不会差不那里去;2、框架的最主要目的不是为了解决“负载”的问题,而是加速开发。3、负载的问题,最直接的可以由硬件来完成,比如一...转载 2019-04-14 23:50:39 · 2332 阅读 · 0 评论 -
Linux下安装Composer及下载问题
下载 Composer 的可执行文件局部安装要真正获取 Composer,我们需要做两件事。首先安装 Composer (同样的,这意味着它将下载到你的项目中):curl -sS https://getcomposer.org/installer | php注意: 如果上述方法由于某些原因失败了,你还可以通过 php >下载安装器:php -r "readfile('https:...原创 2019-04-26 15:46:44 · 2588 阅读 · 0 评论 -
PHP高性能的配置管理扩展Yaconf
简介Yaconf 是一个高性能的配置管理扩展,是由PHP核心开发者鸟哥惠新宸发布的 PHP7 下的扩展应用。主要目标是简化读取项目配置文件, 使配置文件和项目代码分离,增强了配置文件的可读性和可维护性。据 Yaconf 开发者惠新宸在其博客上说,这个项目是其在来微博以后, 第一个优化项目中顺手做的一个小工具, 本身叫做Weibo_Conf. 但是因为 Weibo_Conf 是属于 Weibo ...原创 2019-05-03 15:22:23 · 1094 阅读 · 2 评论 -
后端技术流大神博客收藏
团队技术博客淘宝UED淘宝用户体验团队淘宝核心系统淘宝核心系统团队博客阿里巴巴数据库团队专注数据库管理开发运维淘宝通用产品专注JAVA技术淘宝QA致力于做测试的行业标准淘宝搜索技术关注技术 关注搜索量子恒道专注大数据统计百度搜索研发关注搜索相关技术EMC中国研究院关注于云计算和大数据贰号楼肆层阿里巴巴平台技术部阿里数据平台阿里巴巴数据平台百度技术分享交流百度的互联网技术...转载 2019-04-24 13:23:18 · 727 阅读 · 0 评论 -
深入分析CSRF跨站攻击
一.CSRF是什么?CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。二.CSRF可以做什么?你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,...转载 2019-04-20 11:14:09 · 297 阅读 · 0 评论 -
PHP加速,使用Redis共享SESSION
配置PHP首先配置PHP 参数,以下2方法方法1:直接修改php.ini 文件session.save_handler = redissession.save_path = "tcp://127.0.0.1:6379"方法2:在代码页头中加入以下内容:ini_set("session.save_handler", "redis");ini_set("session.save_p...转载 2019-04-20 12:17:29 · 531 阅读 · 0 评论 -
PHP实现同一个账号只能在一个终端登陆
一个账号在a电脑登陆了,此时在b电脑登陆,就会将a踢下线,需要解决两个问题:一、确保账号只能在一个地方登陆;二、登陆后发送消息通知;对于第一个问题,我们可以借助于session存储于redis之后,实现session在多个站点,多台服务器共享的情况下,统一通过session_id来管理用户的session数据,下面是一段session存储于redis的代码并且展示了通过session_...转载 2019-04-20 13:07:17 · 1986 阅读 · 0 评论 -
PHP+Redis 实现点赞+热度
前言点赞其实是一个很有意思的功能。基本的设计思路有大致两种, 一种自然是用mysql(写了几百行的代码都还没写完,有毒)啦。数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysql等。我这里所讲的功能都是基于我之前的项目去说的,所以有些地方可以不用管的,我主要是记录这个功能的实现思路,当你理解了,基本想用什么鬼语言写都一样的。直接...原创 2019-05-16 17:18:42 · 2286 阅读 · 2 评论 -
Redis持久化-数据丢失及解决方案总结
Redis大部分应用场景是纯缓存服务,请求后端有Primary Storage的组件,如MySQL,HBase;请求Redis的键未命中,会从primary Storage中获取数据返回,同时更新Redis缓存。如果少量数据丢失,相当于请求"缓冲未命中"; 一般对业务的影响是无感知的。但现在Redis用作存储的业务场景变多,数据丢失对业务是致命的影响。下面简单讨论几个Redis常见数据"丢失"现...转载 2019-05-16 18:24:58 · 3810 阅读 · 0 评论 -
PHP中使用gRPC客户端
因为工作需要使用gRPC,本人使用的是windows10,不过linux的操作流程基本一样。直接进入主题,分为了几部分1、下载Protoc下载地址:https://github.com/google/protobuf/releases这里采用的二进制文件,选择对应的平台,下载https://github.com/protocolbuffers/protobuf/releases/down...转载 2019-05-23 16:30:14 · 9817 阅读 · 0 评论 -
CentOS中PHP服务器安装gRPC
载 PHP的gRPC扩展和protobuf扩展PHP的gRPC扩展:http://pecl.php.net/package/gRPCPHP的protobuf扩展: http://pecl.php.net/package/protobufwget http://pecl.php.net/get/grpc-1.20.0.tgzwget http://pecl.php.net/get/proto...原创 2019-05-23 17:05:40 · 1378 阅读 · 0 评论 -
gRPC快速入门教程
gRPC快速入门教程gRPC快速入门(一)——Protobuf简介https://blog.51cto.com/9291927/2331980gRPC快速入门(二)——Protobuf序列化原理解析https://blog.51cto.com/9291927/2332264gRPC快速入门(三)——Protobuf应用示例https://blog.51cto.com/9291927/2...转载 2019-05-23 17:37:25 · 443 阅读 · 0 评论 -
PHP过滤输入的emoji表情
1.过滤emoji表情的原因在我们的项目开发中,emoji表情是个麻烦的东西,即使我们可以能存储,也不一定能完美显示,因为它的更新速度很快:在iOS以外的平台上,例如PC或者android。如果你需要显示emoji,就得准备一大堆emoji图片并使用第三方前端类库才行。即便如此,还是可能因为emoji图片不够全而出现无法显示的情况在大多数业务场景下,emoji也不是非要不可的。我们可以适当地考...转载 2019-05-23 20:18:48 · 1269 阅读 · 2 评论 -
PhpStorm配置自动同步Web服务器
1、首先创建需要创建SFTP用户,具体可参考其他网络教程,这里以www为例2、在webstom编辑器依次选择 Tools => Deployment => Configuration3、添加一个远程主机,协议选择SFTP/填写主机信息设置目录映射,选择Deployment Path就可以了4、手动同步代码控制台可以查看同步信息5、设置自动同步,Tools=》Dep...原创 2019-07-05 14:05:37 · 822 阅读 · 0 评论 -
Linux服务器时间同步
Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步。date命令: date :查看当前时间,结果如下:Tue Mar 4 01:36:45 CST 2014 date -s 09:38:40 :设置当前时间,结果如下:Tue Mar 4 09:转载 2018-01-12 13:46:16 · 300 阅读 · 0 评论 -
Composer下载问题解决
如何使用?请尽可能用比较新的 Composer 版本。使用 Composer 镜像加速有两种选项:选项一:全局配置,这样所有项目都能惠及(推荐);选项二:单独项目配置;选项一、全局配置(推荐)$ composer config -g repo.packagist composer https://packagist.laravel-china.org选项二、单独使用如果仅...转载 2019-04-21 15:48:50 · 1595 阅读 · 0 评论 -
PHP5.6升级PHP7总结
前言本文是一篇讲座听后+后续研究的总结。话说当年追时髦,php7一出就给电脑立马装上了,php5和php7共存,也是立马写了个超级耗时间的循环脚本测了一番,确实php7给力很多,然后也是注意了一些新增的特性与一些丢弃掉的用法。由于php升级乃头等大事,公司近期才打算升级,所以之前一直只能私下欣赏php7带来的快感,负责升级的小伙伴搞了个分享,还挺全的,此处mark一下,当作笔记。主要研究问...转载 2019-04-07 16:55:21 · 10911 阅读 · 1 评论 -
PHP.INI配置:Session配置详细说明
session.save_path='/data/tmp/session';//用文件做介质时,session存储路径; 用memcache做介质时用作服务器连接串:session.save_path = "tcp://127.0.0.1:11211"//有一种设置是 "N;/path",这是随机分级存储,这个样的话,垃圾回收将不起作用,需要自己写脚本session.save_handle...转载 2018-02-11 22:13:35 · 969 阅读 · 0 评论 -
PHP中使用Redis存储Session
PHP默认使用文件存储session,如果并发量大,效率非常低。而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session。这里,介绍下php的session_set_save_handler 函数的作用和使用方法。该函数定义用户级session保存函数(如打开、关闭、写入等)。原型如下:bool session_set_save_hanler(ca...转载 2018-02-11 17:31:40 · 2525 阅读 · 0 评论 -
100个常用的 PHP 类库、资源和技巧小结
学习资源PHP相关的有参考价值的社区,博客,网站,文章,书籍,视频等资源PHP网站(PHP Websites)PHP The Right Way 一个PHP实践的快速参考指导PHP书籍(PHP Books)Modern PHP - 作者是PHP 之道的发起人和Slim框架的作者 Modern PHP(中文版)依赖管理( Dependency Management )转载 2018-01-18 10:32:02 · 609 阅读 · 0 评论 -
CentOS 编译安装 PHP 5.6.25
相关依赖包安装1、演示环境 # more /etc/redhat-release CentOS release 6.9 (Final)2、扩展支持(mcrypt、mhash扩展和libevent) 如果想让编译的php支持mcrypt、mhash扩展和libevent,需要安装以下包libmcryptlibmcrypt-develmhashmhash-devel说转载 2018-01-10 16:00:27 · 1516 阅读 · 0 评论 -
CoreSeek详细安装教程
CentOS 6.5环境准备$ localeLANG=zh_CN.UTF-8LC_ALL="zh_CN.UTF-8"##以下为核心项,locale为zh_CN.UTF-8,就可以正常显示和输入中文;locale设置功能由操作系统自身支持,BSD/Linux均可开启;该功能,不是coreseek提供的!!!##如果不能正常显示中文,则后面的中文测试部分无法正常进行,但不会影响core转载 2017-03-10 22:00:20 · 2985 阅读 · 0 评论 -
PHP用户缓存APCU
故事APCu 是老牌 PHP 字节码和对象缓存 缓存器 APC 的分支,具体由来还得讲个故事。首先提一下,PHP 如果公用多个缓存器是会冲突的,例如同样都是字节码缓存器,OPcache 和 eAccelerate 同时安装就会起冲突甚至报错;而 XCache 同时有字节码缓存器和对象缓存,和 OPCache 共存也是会起冲突的。在 PHP 5.5 之前是没有 OPcache 这个缓存器转载 2017-08-01 21:40:27 · 6202 阅读 · 0 评论 -
Coreseek自定义中文词库
coreseek自定义中文词库,unigram.txt是词库的文本文件, uni.lib是mmseg真正使用的词库字典我们可以在unigram.txt中增加我们想要的分词,然后用mmseg -u命令去重新生成新的lib文件vim unigram.txt词库文本内容格式如下:分词库的一条记录要分为转载 2017-11-21 11:10:54 · 437 阅读 · 0 评论 -
Sphinx 0.9.9/Coreseek 3.2 参考手册
Sphinx 0.9.9/Coreseek 3.2 参考手册Sphinx--强大的开源全文检索引擎,Coreseek--免费开源的中文全文检索引擎Copyright © 2006-2010 (coreseek)nzinfo, li.monan(at)gmail.com>, (coreseek)HonestQiao, honestqiao(at)gmail.com>, (转载 2017-11-28 10:38:08 · 1187 阅读 · 0 评论 -
Coreseek mmseg分词库生成说明
词典的构造 mmseg -u unigram.txt 该命令执行后,将会在unigram.txt所在目录中产生一个名为unigram.txt.uni的文件,将该文件改名为uni.lib,完成词典的构造。需要注意的是,unigram.txt需要预先准备,并且编码格式必须为UTF-8编码。转载 2017-12-22 15:42:55 · 512 阅读 · 0 评论 -
CentOS yum安装lnmp环境
环境设置1、配置防火墙,开启80端口、3306端口转载 2017-11-25 22:38:39 · 375 阅读 · 0 评论 -
CoreSeek(Sphinx)配置文件详细解释
CoreSeek配置文件详细解释,我们先要明白几个概念:source:数据源,数据是从什么地方来的。 index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。转载 2017-03-12 12:24:01 · 808 阅读 · 0 评论 -
PHP中用户自定义Session处理机制
*session_start() 会触发open(),read() session_commit()以及页面执行完毕都会顺序触发 write(),close()*自定义Session处理机制首先要设置php.ini选项session.save_handler = user,也可在 PHP程序 中进行设置:ini_set(‘session.save_handler’, ‘user’...转载 2018-02-11 22:19:25 · 642 阅读 · 0 评论