缓存穿透,缓存雪崩,缓存击穿以及解决办法
(1)缓存穿透:指的是操作直接穿过了缓存层面,直接到达 db 层面,从而称为缓存穿透。直接查询某一条不存在的数据,就会发生这种情况(其实还是要经过缓存层,只不过缓存层没有这条数据,就会发起 db 层面的操作)。 解决方案: 1. Bloom filter 算法(布隆过滤器???) 2. 空值缓存: 一种比较简单的解决办法,在第一次查询完不存在的数据…
mysql 数据保存在磁盘的数据格式是什么,又是如何编译成我们能识别的数据格式?
mysql 数据保存在磁盘的数据格式是什么? mysql 数据存储在磁盘上的格式,是以数据块(block)的形式存储的 数据块:由多个磁盘 block 组成的块,存储引擎负责管理数据块。 磁盘是 block 块设备,数据在磁盘上的存放也是按照块存放的。 mysql 读取表到内存时,也必许按照一块一块的方式读取。 假设要查询的表在和其他表在都在同一个…
PHP 面试之获取访问者真实 IP,邮箱,ip 正则验证
在没有开代理服务器的情况下,直接使用: $ip = $_SERVER["REMOTE_ADDR"]; 如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址 ,反之就是真实 IP; 下面是通用的一种写法,都能获取到: 要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv ("HTTP…
PHP之遍历文件的方式
思路:1、定义一个函数,把给定的文件夹当前目录遍历输出(用到的文件操作函数 scandir ():一次性读取当前文件夹所有的内容并以数组的形式返回。).    2、如果是文件夹则红色字体输出,文件则黑色输出;    3、判断是否是文件夹如果是则递归调用自己,反之则输出。 代码如下 [cc lang='php']
nuxt.js 部署到服务器 + thinkphp5
首先,确保了服务器上面已经有了 node 和 npm 的环境,我这边用的是 ubuntu 的系统 其次,确保 node 的版本问题,我部署的时候就因为 node 版本太低,导致部署不成功,升级 node 的话,可以考虑一下 nvm 工具,具体可自行百度升级方法 下面开始: 1、nuxt 项目本地 npm run build 打包(本地打包) 2、把…
腾讯 coding 使用 webhook 实现项目自动化部署
首先你的有个 Coding 账号 然后在后台配置 webhook 的 https 接口即可,因为本人所在公司无权限更改 https 接口,只能提供一个接口地址给管理员配置完可以访问即可, 下面放代码,直接是接口的代码,我的代码是 thinkphp3.2.3, 回调接口是 /api/hook/autoEvent; 参考的是 github 的开源项目 …