下单实现分布式锁
最近一直在优化下单部分,今天优化了一下redis的加锁方式。 为了防止每个下单用户重复点击而造成二次提交,在下单的时候会给每个用户加一把锁。 加锁代码实现: $result = redis()->set($key, Context::get('request_id'), ['nx', 'ex' => 10]) return $resul…
Redis
Redis命令 Redis 命令用于在 redis 服务上执行操作。 语法 Redis 客户端的基本语法为: $ redis-cli 在远程服务上执行命令 $redis-cli -h 127.0.0.1 -p 6379 -a "mypass" redis 127.0.0.1:6379> redis 127.0.0.1:6379> PIN…
接口限流算法:漏桶算法&令牌桶算法
引用自【接口限流算法:漏桶算法&令牌桶算法】 工作中对外提供的API 接口设计都要考虑限流,如果不考虑限流,会成系统的连锁反应,轻者响应缓慢,重者系统宕机,整个业务线崩溃,如何应对这种情况呢,我们可以对请求进行引流或者直接拒绝等操作,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 在开发高并发系统时有三把利器用来保护系…
php简单对称加密
因为需求需要,需要对外暴露一个接口,虽然接口信息不敏感,本着接口安全规则,在网上找了找一些简单对称加密的写法,看了很多,但是有的是不支持url的,因为包含了特殊字符,虽然可以urlencode,但是浏览器会自动urldecode,导致部分问题。所以我结合网上的一些写法,融合了一下。 if (!function_exists('myAuthCode'…
php简单的中间件实现
// 框架核心应用层 $application = function($name) { echo "this is a {$name} application\n" . PHP_EOL; }; // 前置校验中间件 $auth = function($handler) { return function($name) use ($handler) …
压测工具ab
基本概念 吞吐率(Requests per second) 概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。 计算公式:总请求数 / 处理完成这些请求数所花费的时间,即 Request per second = Complete r…
kong插件应用(二)
key-auth 配置密钥验证插件 要为您在Kong中配置的service配置key-auth插件,请发出以下CURL请求: $ curl -i -X POST \ --url http://localhost:8001/services/example-service/plugins/ \ --data 'name=key-auth' 注意:此插…
thumbnail
postgresql+keepalived高可用部署
前提准备 基于流复制部署,keepalived检测postgresql状态,如果pgsql死了,那么keepalived的VIP漂移到备库,同时提升备库为主库,可以进行读写操作。(默认流复制的主库为可读可写,备库为只读) 主库:10.211.55.8 从库:10.211.55.11 Vip: 10.211.55.15 安装keepalived 主备…