单机Redis锁与文件锁

单机情形下就不要考虑redis锁了,文件锁的性能和释放机制都优于redis锁。在频繁加锁释放锁的情形下,redis CPU占用额外高。

数据参考:无,一个下午的悲催总结。

如果需要更高的性能,可以参考如下内容:

多进程多线程(40)情况下,每个线程操作1000次
进程个数      10                100              
文件锁        3665876            18718567
互斥锁        444270              3785420
信号量        137378859         463111685
读写锁        559855              7772213

ref: https://blog.csdn.net/overcomeunicom990702/article/details/2216244

当前应用场景,防止300个爬虫进程读取重复数据下载,加锁性能消耗较大,在不改变现有架构的情形下数据库读取的性能限制了并发,单个查询0.1s,即300个查询耗时30s,直接导致锁的存在感很弱。

解决方案:如果需要高并发,还是推荐走异步队列进行分散消费,否则性能瓶颈始终存在。

当前还没有任何评论

写下你最简单的想法