- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 浅谈redis的setnx
在Redis里,所谓SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置,可以利用它来实现锁的效果,不过很多人没有意识到SETNX有陷阱! 比如说:某个查询数据库的接口,因为调用量比较大,所以加了缓存,并设定缓存过期后刷新,问题是当并发量比较大的时候,如果没有锁机制,那么缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效应,如果有锁机制,那么就可以控制只有一个请求去更新缓存,其它的请求视情况要么等待,要么使用过期的缓存。 下面以目...
2021-05-19 16:15:33 2354
原创 正确使用Redis的setnx实现锁机制
setNX,是set if not exists的缩写,也就是只有不存在的时候才设置,设置成功时返回1,设置失败时返回0。可以利用它来实现锁的效果,但是很多人在使用的过程中都有一些问题没有考虑到。 例如某个查询数据库的接口因为请求量比较大所以加了缓存,并设定缓存过期后刷新。当并发量比较大并且缓存过期的瞬间,大量并发请求会直接查询数据库导致雪崩。如果使用锁机制来控制只有一个请求去更新缓存就能避免雪崩的问题。下面是很多人下意识想到的加锁方法$rs = $redis->setNX($k...
2021-05-19 16:00:11 650
原创 awk统计行数&去重展示
# 统计第4列为0112并且第5列为00或者03的行数awk -F '|' '{if(($4=="0112")&&($5=="00"||$5=="03")) print $1}' epcc0303_20210423.txt|wc -l# 去重展示第一列的时间awk -F '|' '{print $1}' epcc0303_20210422.txt|sort|uniq
2021-05-08 19:15:20 1725
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人