分布式事务的解决方案 分布式事务的解决方案 MySQL 自带的两阶段提交/XA顾名思义就是要分两步提交事务,多出来的事务为事务管理器。 大致的流程: 第一阶段:事务管理器询问各个资源管理器是否都就绪,所有的参与者需要将自己本身事务是否执行成功的信息反馈给管理者 第二阶段: 事务管理者根据资源的反馈,看是否需要提交或者回滚, 存在的问题: 一旦事务管理器出问题了,整个系统都不可用了 数据可能会不一致, 2021-01-11 Redis 分布式锁 分布式事务锁
阿里云敏感词安全接口PHP实现 不啰嗦直接上代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 2020-12-01 PHP
Redis的锁来缓解并发请求 Redis 锁 缓解并发 简单实现Redis 锁主要利用 Redis 的 setnx 命令实现 加锁命令:SETNX key value,当键不存在时,对键进行设置操作并返回成功,否则返回失败。KEY 是锁的唯一标识,一般按业务来决定命名。 解锁命令:DEL key,通过删除键值对释放锁,以便其他线程可以通过 SETNX 命令来获取锁。 锁超时:EXPIRE key timeout, 设置 2020-07-11 Redis PHP 锁
Redis 实现简单的限流 利用 Redis 有序集合实现,并用管道加速。假设 $period 秒内,一个用户只能访问 $maxCount 次。用户 ID 作为 key,毫秒时间戳作为 score 和 value。一个请求进入, 加入有序集合——zadd 移除时间窗口之前的行为记录,剩下的都是时间窗口内的——zremrangebyscore 更新过期时间——expire 获取窗口内的元素数量——zcard 判断窗口内元素数 2020-02-11 Redis
Go 技巧总结 Golang 技巧总结时间格式化1time := time2.Now().Format(“2006-01-02 15:04:05”) http库 request body 只能读取一次12io.ReadAll(r.Body) // 第一次有数据 第二次为空,但是不代表错误要注意多次读取的问题 2019-05-11 Go Go 技巧总结
PHP 技巧总结 PHP 技巧总结二维数组根据某个字段进行排序1234一个字段排序array_multisort(array_column($data, 'sort'), SORT_DESC, $data);多个字段排序array_multisort(array_column($data, 'sort1'), SORT_DESC, array_column($data, 2018-02-11 PHP PHP 技巧总结