自定义博客皮肤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)
  • 收藏
  • 关注

转载 Redis 解析配置文件 redis.conf

常见配置redis.conf介绍【重要】参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口

2020-10-30 10:51:21 192 1

原创 Redis 全景知识图、Redis速度快的原因

时间复杂度和空间复杂度的计算公式

2020-10-30 09:46:52 362

转载 秒杀系统优化方案吐血整理

前一段时间好好研究了秒杀的问题,我把里面的问题好好总结了,可以说是比较全面的了,真的是吐血整理了。由于我先是在word中整理的,格式都整理得比较好,放到博客上格式挺难调,暂时按word的格式来吧,有时间了在好好排版下。主要需要解决的问题有两个:高并发对数据库产生的压力 竞争状态下如何解决库存的正确减少(超卖问题)优化的思路:1) 尽量将请求拦截在系统上游2)读多写少经量多使用缓存3) redis缓存 +RabbitMQ+ mysql 批量入库1. 初始秒杀设计1.1..

2020-10-29 16:12:57 1872

原创 算法工具

https://algorithm-visualizer.org/simple-recursive/cellular-automata

2020-10-28 12:03:01 315

原创 php 实现十大经典排序算法

1、直接插入排序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也不做, * 否...

2020-10-27 19:04:26 506

原创 Grpc介绍 — Go-Service To PHP-Client

笔者现在公司项目大部分是PHP进行开发,要完成整体微服务化必须要考虑PHP使用上的可行性,Grpc也是支持PHP作为client端发起Grpc请求,但是依赖的扩展等都相对复杂(毕竟不是亲儿子),那么本文就接受怎么使用PHP调用Grpc服务。附上:喵了个咪的博客:w-blog.cn博文实例demo:GitHub - sunmi-OS/grpc-php-to-golang-demogrpc官网:grpc / grpc.ioprotobuf代码仓库:Release...

2020-10-27 16:56:34 274

转载 Redis大总结之三:SORT命令(对 列表|集合|有序集合 进行排序)

SORT命令对列表|集合|有序集合进行排序 对列表进行排序: 127.0.0.1:6379[5]> lrange myList 0 -1 1) "1" 2) "2" 3) "4" 4) "3" 5) "5" 127.0.0.1:6379[5]> sort myList 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 127.0.0.1:6379[5]&g..

2020-10-27 10:57:56 496

转载 Redis 和 I/O 多路复用

最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个

2020-10-21 16:06:10 166

原创 redis的持久化:RDB的配置和原理

RDBRDB的配置方法 redis.conf文件 save 900 1 # 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) save 300 10 # 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化) save 60 10000# 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化) RDB的工作机制redis调用系统函数...

2020-10-21 10:51:32 187

转载 PHP MYSQL注入攻击需要预防7个要点

1:数字型参数使用类似intval,floatval这样的方法强制过滤。2:字符串型参数使用类似mysql_real_escape_string这样的方法强制过滤,而不是简单的addslashes。3:最好抛弃mysql_query这样的拼接SQL查询方式,尽可能使用PDO的prepare绑定方式。4:使用rewrite技术隐藏真实脚本及参数的信息,通过rewrite正则也能过滤可疑的参数。5:关闭错误提示,不给攻击者提供敏感信息:display_errors=off。6:以日志的方式记

2020-10-21 07:41:43 122

原创 ab 压力测试

ab压力测试

2020-10-18 13:02:37 78

原创 Mysql 什么是乐观锁,什么是悲观锁

一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在 DBMS 中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离.

2020-10-18 10:39:09 201 1

原创 MySQL乐观锁电商库存并发问题应用

MySQL乐观锁电商库存并发问题应用什么是乐观锁,什么是悲观锁【多线程系列】CAS、AQS简单介绍一、案例说明银行两操作员同时操作同一账户。比如A、B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后提交。最后实际账户余额为1000-50=950元,但本该为1000+100-50=1050。这就是典型的并发问题。乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本(Version)记录机制实现。何谓数.

2020-10-18 10:37:50 510

原创 PHP thinkphp核心构架

ThinkPHP的架构: 是 核心 + 行为 + 驱动bai,TP官方简称为:CBD核心(Core):就是du框zhi架的核心代码,不可缺少的东西,TP本身是dao基于MVC思想开发的框架。行为(Behavior) :行为在新版ThinkPHP的架构里面起着举足轻重的作用,在系统核心之上,设置了很多标签扩展位,而每个标签位置可以依次执行各自的独立行为。行为扩展就因此而诞生了,而且很多系统功能也是通过内置的行为扩展完成的,所有行为扩展都是可替换和增加的,由此形成了底层框架可组装的基础。驱动( Drive

2020-10-17 20:26:21 990 1

原创 PHP 秒杀商品库存同步

<?php/** * 任务计划 - 秒杀商品库存同步 * * * * * @copyright Copyright (c) 2007-2013 ShopNC Inc. (http://www.shopnc.net) * @license http://www.shopnc.net * @link http://www.shopnc.net * @since File available since Release v1.1 */defined.

2020-10-17 19:23:34 344

原创 PHP 秒杀 清空购物车

<?php/** * 购买流程 */defined('InShopNC') or exit('Access Invalid!');class refresh_rushControl{ public $exception; //邮件配置 private $_email_subject = "【秒杀执行计划任务】"; private $_email_to = 'yufeng.wang@lecuntao.com,jiayf@lecuntao.com,fei.

2020-10-17 19:22:57 307

原创 Linux下日志文件过大解决方案

很多Linux服务器里的应用程序都是无间断的输出日志,这对于服务器的硬盘是一个很大的考验。通过以上方法,应用程序的日志会一直输出到日志文件myout.txt里,这个文件也会不断的增大,一直蚕食服务器硬盘。但是,我们都知道,日志对于我们而言是非常重要的,一量应用程序出现bug,或者服务器宕机,我们必须通过日志文件来进行debug或进一步分析。所以,日志文件不能简单的一删了之。这时,我们想到,如果能将日志文件切分该多好,这样我们可以留下重要的日志,而删掉不必要的日志。下面良许就来详...

2020-10-16 14:52:45 7224 1

原创 php 在代码中开启或关闭错误提示并将错误写入日志

//ini_set('error_reporting', 0);ini_set('error_reporting',E_ALL);//设置报告错误级别$debug = false;if($debug){ //为true时,将错误显示在浏览器 ini_set("display_errors","on"); ini_set("log_errors","off");}else{ //为false时,将错误写入报告文件中,不显示在浏览器 ini_set("displ.

2020-10-16 11:32:32 146

原创 PHP 正则表达式

php正则:自己总结开始:$str = '13895674453';1、匹配11位手机号preg_match("/^1[3|5|9][0-9]{9}$/", $str)2、匹配纯数字preg_match("/^\d*$/", $str)php正则:自己总结结束1、正则:元字符中的小括号、模式修正符2、模式修正符号(单个符号)模式修正符号要写在定界符号外,放在右边,比如i模式修正符号,一个字符就是一个功能,可以组合使用,比如ieU模式修正符号作用:可..

2020-10-14 09:59:39 440

转载 mysql事务隔离级别/脏读/不可重复读/幻读详解

一、四种事务隔离级别1.1read uncommitted 读未提交即:事务A可以读取到事务B已修改但未提交的数据。除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔离级别,标准实在太宽松了。1.2read committed 读已提交(简称RC)即:事务A只能读取到事务B修改并已提交的数据。这个级别相对要严格一些,至少是要等其它事务把变更提交到db,才能读取到,听上去蛮靠谱的。但是有些业务场景,比如会员系统中,如果要在一个事务中,多次读取用户身...

2020-10-14 08:07:12 562

原创 Elasticsearch中text与keyword的区别

text类型1:支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作; 2:test类型的最大支持的字符长度无限制,适合大字段存储; 使用场景: 存储全文搜索数据, 例如: 邮箱内容、地址、代码块、博客文章内容等。 默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引。 默认结合标准分析器进行词命中、词频相关度打分。keyword1:不进行分词,直接索引,支持模糊、支持精确匹配,支持聚合、排序操作。 2:keyword类型的最大支持的长度为——32766个UT

2020-10-10 09:34:29 377

原创 PHP设计模式之桥接模式

HP设计模式之桥接模式桥接模式属于结构型的设计模式 将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变 bridge 模式是基于最小设计原则,通过封装,聚合及继承等行为让不同的类承担不同的职责,主要的特点就是将抽象与实现分离,从而保证各部分的独立性以及应对 他们功能的扩展生活场景引入:现在的生活都离不开手机,手机中又有不同的品牌,小米,华为,三星,苹果。每一种手机的设计又不一样,比如最开始的翻盖手机,直板手机,到现在的全面屏手机,假如现在的每个手机厂商都是最开始从翻盖手机做起,虽然手机

2020-10-09 17:34:36 73

原创 PHP 适配器模式简单应用示例

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。//假设使用php开发了一个天气接口class Weather{ public static function show(){ $inf

2020-10-09 15:04:25 184

原创 PHP实现观察者模式

“观察者模式”的观察者三个字信息量很大。玩过很多网络游戏的童鞋们应该知道,即便是斗地主,除了玩家,还有一个角色叫“观察者"。在我们今天他谈论的模式设计中,观察者也是如此。首先,要有一个“主题”。只有有了一个主题,观察者才能搬着小板凳儿聚在一堆。其次,观察者还必须要有自己的操作。否则你聚在一堆儿没事做也没什么意义。   从面向过程的角度来看,首先是观察者向主题注册,注册完之后,主题再通知观察者做出相应的操作,整个事情就完了。   从面向对象的角度来看,主题提供注册和通知的接口,观察者提供自身操作的接口

2020-10-08 12:22:02 242

空空如也

空空如也

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

TA关注的人

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