目录
参考:
1. redis实现分布式锁
参考:
127.0.0.1:6379> set distributeKey requestId ex 10 nxOK127.0.0.1:6379> get distributeKey"requestId"127.0.0.1:6379> del distributeKey(integer) 1127.0.0.1:6379> get distributeKey(nil)127.0.0.1:6379> set distributeKey requestId ex 10 nxOK127.0.0.1:6379> set distributeKey requestId_1 ex 10 nx(nil)127.0.0.1:6379> get distributeKey"requestId"127.0.0.1:6379>
2. 订单或任务缓存
127.0.0.1:6379> lpush face "{url:http://**.jpg,roi:{x:0,y:0,w:1,h:1}}"(integer) 1127.0.0.1:6379> lpush face "{url:http://**1.jpg,roi:{x:0,y:0,w:1,h:1}}"(integer) 2127.0.0.1:6379> lrange face 0 -11) "{url:http://**1.jpg,roi:{x:0,y:0,w:1,h:1}}"2) "{url:http://**.jpg,roi:{x:0,y:0,w:1,h:1}}"127.0.0.1:6379>
3. Redis和DB数据一致性
只要有多份数据,就会涉及到数据一致性的问题。
更新缓存步骤:- 更新DB;
- 更新Redis;
- 更新Redis失败,出现数据不一致:
- 重试n次;
- 更新操作插入MQ,后台继续更新;
4. 大并发Redis穿透直接访问DB
使用连接池,限制访问DB并发数。
5. 接口限流器
参考: