搜索
首页php教程php手册给你的PHP写入函数file_put_contents加个锁

今天遇到redis自动关闭的问题,有个读取 缓存 函数问题是这样的: 先去redis或memcache缓存读取,有就返回读取数组,没有就去读取文件缓存,有就将该文件数组就返回,然后写入redis或memcache缓存和文件缓存。 问题就出在redis关闭后,一直会绕过去读取file

今天遇到redis自动关闭的问题,有个读取缓存函数问题是这样的:

先去redis或memcache缓存读取,有就返回读取数组,没有就去读取文件缓存,有就将该文件数组就返回,然后写入redis或memcache缓存和文件缓存。

问题就出在redis关闭后,一直会绕过去读取file文件缓存,读取后把新的数据写入到文件去。

$strlen = file_put_contents($cachefile, $arr);//写入缓存文件

如果这里没有使用LOCK_EX,当高并发使用这个函数的时候,就有可能出现,一个php还没有把文件写完整,另外一个php就来读取,结果发现返回内容不是数组,又接着写入一个新的内容,循环不停的写入,读取,错误,写入。

这时候要看情况而定了,假如缓存文件是对应不同名称,同时被并发操作可能不大的情况。可以不LOCK_EX,毕竟会损耗性能,当有些时候不LOCK_EX损耗更大,是个死循环。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具