负载均衡时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访问被分发到A服务器,那么session就会被存到A服务器,再次访问时负载均衡会分发到B服务器那么第一次访问的session信息就会获取不到之前的session信息。从而导致数据的不一致。解决方案有以下几种:方案一(nginx或者haproxy做的负载均衡):用Nginx 做 ......
359
0
0
2022-07-24
EasyTpl - 简单快速的 PHP 模板引擎⚡️ 简单快速的 PHP 模板引擎。功能特性简单、轻量且快速。无学习成本仅仅简单处理并转换为原生PHP语法兼容PHP原生语法使用更加简单的输出语法。 例如:{{= $var }} {{ $var }} {{ echo $var }}支持所有控制语法。 例如 if,elseif,else;foreach;for; ......
375
0
0
2022-07-23
原型模式 - Prototype Pattern定义用原型实例来确定要创建对象的类型,并通过复制原型来创建新的对象。结构中包含的角色Prototype(抽象原型角色):声明一个克隆自身的接口Concrete Prototype(具体原型角色):实现一个克隆自身的操作最小可表达代码// 定义拷贝接口 interface Cloneable { p ......
410
0
0
2022-07-22
建造者模式 - Builder Pattern定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。结构中包含的角色Builder(抽象建造者)ConcreteBuilder(具体建造者)Product(产品角色)Director(指挥者)一句话概括设计模式通过分解构建步骤,控制构建顺序,隔离复杂对象的创建和使用的方式,解决复杂对象的 ......
354
0
0
2022-07-22
工厂模式 Factory Pattern简述工厂模式分三种类型。 1. 简单工厂模式。 2. 工厂方法模式。 3. 抽象工厂模式。设计的原则和思想把对象的创建封装在工厂类中,解耦对象的创建和使用。产品等级结构和产品族产品等级结构 : 继承结构,就是同类。例如,华为手机,小米手机,魅族手机,这些都是具体实现类,抽象类是手机。 产品族 ......
394
0
0
2022-07-22
单例模式 - Singleton Pattern定义一个类只拥有一个实例,且能提供全局访问的方法。 一句话概括设计模式一个类只实例化一次。 结构中包含的角色Singleton 单例对象 最小可表达代码// final 不能继承 final class Singleton { private static $instance; ......
337
0
0
2022-07-22
修改 dnmp 的 .env 文件, php 配置 swoole 扩展PHP_EXTENSIONS=swoole 销毁容器docker-compose down 重新构建 php 容器docker-compose build php 启动docker-compose up -d 查看 安装的 swoole 扩展php -m | grep swoole ......
437
0
0
2022-07-19
github.com/aliyun/aliyun-apsaradb-... phpsdkdemo一、背景信息云数据库HBase增强版,是由云原生多模数据库Lindorm的宽表引擎云原生多模数据库Lindorm的宽表引擎提供的、完全兼容HBase的云上托管数据库二、hbase遇到的问题问题:正式上线后三天、log每天200G数据写入到hbase后变成了2TB数 ......
630
0
0
2022-07-18
引言在介绍布隆过滤器之前我们首先引入几个场景。场景一在一个高并发的计数系统中,如果一个key没有计数,此时我们应该返回0,但是访问的key不存在,相当于每次访问缓存都不起作用了。那么如何避免频繁访问数量为0的key而导致的缓存被击穿?有人说, 将这个key的值置为0存入缓存不就行了吗?确实,这是一个好的方案。大部分情况我们都是这样做的,当访问一个不存在的ke ......
377
0
0
2022-07-18
并发访问限制问题对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制的情况下,用户则可以使用同一个换领码同时兑换到多张优惠券。常见的业务逻辑代码如下:if A(可以换领) B(执行换领) C(更新为已换领) D(结束) ......
405
0
0
2022-07-17
随机生成号码 function generate_name($count,$type="array",$white_space=false) { $arr = array( 130,131,132,133,134,135,136,137,138,139, 144,147, ......
516
0
0
2022-07-12
hyperf-redis-lockEnglish | 中文一个简单的Redis分布式锁的实现 基于Hyperf框架。本扩展实现了基本的分布式锁,支持阻塞式分布式锁和非阻塞式分布式锁。原理Redis的命令为原子性 使用Redis的set即可保证业务的串行执行。2.8之前版本的Redis不支持set 的ex选项 因此只能使用 setnx+expire的方式。 对 ......
591
0
0
2022-07-12
项目中发现查看手册运行代码 比较数组队列 和 SplQueuelist($t1, $t2) = explode(' ', microtime()); $st = (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000); $splq = new SplQueue; for($i = ......
467
0
0
2022-07-12
设计模式设计模式单例模式工厂模式工厂模式,工厂方法或者类生成对象,而不是在代码中直接new。public function test1($arr) { $people = new PeopleClass(); } public function test2($arr) { $people = new PeopleClass(); ......
473
0
0
2022-07-10
GlobalPay支持国际版支付的 PHP SDK,目前只支持支付宝国际版。因目前支付宝跨境在线支付服务只支持 app、wap、web 和报关这四种,本 SDK 提供了 app、wap、web 这三种跨境支付,详见国际支付宝官方文档 。安装composer require pudongping/global-pay -vvv 特点命名规范隐藏开发者不需要关 ......
325
0
0
2022-07-10