作者: ezreal_rao

精神病有所好转

106 篇文章

Redis部分总结
redis特点 优点 读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。 支持数据持久化,支持AOF和RDB两种持久化方式。 支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。 数据结构丰富,除了支持string类型的value外还支持hash、set、zset、lis…
mysql事务
事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段。 基础概念 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行,要么都不执行。作为一个关系型数据库,MySQL支持事务。 逻辑架构和存储引擎 如上图所示,MySQL服务器逻辑架构从上往下可以分为三…
mysql主从复制
基础思维导图 常见架构 主从复制原理 对于主从来说,通常的操作是主库用来写入数据,从库用来读取数据。这样的好处是通过将读写压力分散开,避免了所有的请求都打在主库上。同时通过从库进行水平扩展使系统的伸缩性及负载能力也得到了很大的提升。 但是问题就来了,读从库时的数据要与主库保持一致,那就需要主库的数据在写入后同步到从库中。如何保持主库与从库的数据一致…
下单实现分布式锁
最近一直在优化下单部分,今天优化了一下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) …