老废物乐园 瓜子的技术笔记 · Java / AI / 金融科技

Redis 分布式锁的正确实现:setnx 的那些坑

同一笔订单被扣了两次款:我写的分布式锁形同虚设 十月下旬,财务对账发现 7 笔订单重复扣款。查下来是用户点了两次支付按钮,两个请求几乎同时打到两台不同的应用Ubuntu 服务器上,都通过了库存和状态校验,各扣了一次。 我当时的第一反应是"加个锁不就行了",然后写出了这一版: public boole

遥望星星 遥望星星 发布于 2019-03-19

Redis 内存满了怎么办?过期策略与淘汰策略配置

凌晨两点的告警:Redis used_memory 撞到了 maxmemory 我们的 Redis 是 4.0.2,主从各 4G。某天凌晨收到告警,used_memory 冲到 3.9G,然后业务开始大面积报: redis.clients.jedis.exceptions.JedisDataExce

遥望星星 遥望星星 发布于 2019-02-23

缓存穿透、击穿、雪崩:一次缓存雪崩打挂数据库

六月十三号上午,MySQL 被 3 万 QPS 打挂了 那天早上 9:07,我还在地铁上,DBA 的电话就打过来了:"你们的库 CPU 100%,连接数打满,赶紧看看是不是缓存挂了。" 到公司一看监控,数据库 QPS 从平时的 800 飙到 31000,CPU 100%,连接数 500 打满,大量请

遥望星星 遥望星星 发布于 2019-01-30