什么是悲观锁,乐观锁? 乐观锁总是假设最好的情况,认为共享资源每次被访问的时候不会出现问题,线程可以不停地执行,无需加锁也无需等待,只是在提交修改的时候去验证对应的资源(也就是数据)是否被其它线程修改了(具体方法可以使用版本号机制或 CAS 算法)。
主从复制读写分离? 通过这样的配置,主从复制实现了数据的一致性,而读写分离提高了系统的性能和可扩展性。需要注意的是,这只是一个简单的实现方法,实际应用中可能需要更复杂的配置和优化。主从复制和读写分离是常见的数据库架构策略,它们可以提高系统的性能和可靠性。
mysql union 和 union all区别? 都是用于合并两个或多个SELECT语句的结果集。它们之间的主要区别在于如何处理重复记录。时,需要根据具体的需求来决定。如果需要删除重复的记录,使用。如果需要保留所有记录,包括重复的记录,使用。
drop、delete与truncate的区别? Truncate命令用于删除表中的所有数据,但保留表的结构。换句话说,表的结构将保持不变,表中原有的索引、约束等将保留。Delete命令用于删除表中的数据,可以根据条件删除。Delete语句会触发trigger,如果数据被删除后需要执行某些特定的操作,可以通过trigger来实现。另外,Delete操作可以回滚,如果在删除数据后发现误删或需要回滚,可以进行回滚操作。Drop命令用于删除整个表,包括表的结构和数据。使用此命令要非常小心,因为一旦表被删除,将无法恢复。
php中使用cdn 3. 修改静态资源链接:将应用中需要加速的静态资源(如图片、CSS 文件、JavaScript 文件)的链接替换为 CDN 的链接。4. 验证 CDN 加速效果:通过访问 CDN 的加速域名,验证静态资源是否成功被 CDN 加速。1. 选择合适的 CDN 服务提供商:根据需求和预算选择合适的 CDN 服务提供商,例如阿里云CDN、腾讯云 CDN、Cloudflare 等。7. 监控和调优:使用 CDN 服务提供商提供的监控工具,实时查看 CDN 加速效果、缓存命中率等指标,并根据数据进行调优和优化。
mysql的alter怎么使用? ALTER TABLE 表名 ADD FOREIGN KEY (列名) REFERENCES 关联表名(关联列名);ALTER TABLE 表名 ADD PRIMARY KEY (列名);ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;ALTER TABLE 表名 MODIFY 列名 新数据类型;ALTER TABLE 表名 DROP COLUMN 列名;ALTER TABLE 旧表名 RENAME TO 新表名;ALTER TABLE 表名 ADD 列名 数据类型;
PHP实现在数据库百万条数据中随机获取几条记录的方法 数据库中(mysql)随机获取几条数据很简单,但是如果一个表的数据基数很大,比如一千万,从一千万中随机产生10条数据,那就相当慢了,如果同时一百个人访问网站,处理这些个进程,对于一般的服务器来说,肯定是要死机的。mysql数据库获取随机数据的函数rand(),我建议轻易不要用这个,我写博客的时候试了一下,从16万数据里随机获取5条数据,用时14.02秒,这个耗费满惊人的。
单点登录实现? (2)扩展性不强:如果将来搭建了多个服务器,虽然每个服务器都执行的是同样的业务逻辑,但是session数据是保存在内存中的(不是共享的),用户第一次访问的是服务器1,当用户再次请求时可能访问的是另外一台服务器2,服务器2获取不到session信息,就判定用户没有登陆过。简而言之,多个系统,统一登陆。补充:域名通过 “.” 号切分后,从右往左看,不包含 “.” 的是顶级域名,包含一个 “.”的是一级域名,如:baidu.com, 包含两个“.”的是二级域名,如:a. baidu.com ,以此类推。
redis相关的一些面试题? 这样用户可以注册多个socket,然后不断地调用select读取被激活的socket,redis服务端将这些socke置于队列中,然后,文件事件分派器,依次去队列中取,转发到不同的事件处理器中,提高读取效率。缓存穿透:假如某一时刻访问redis的大量key都在redis中不存在(比如黑客故意伪造一些乱七八糟的key),那么也会给数据造成压力,这就是缓存穿透,解决方案是使用布隆过滤器,它的作用就是如果它认为一个key不存在,那么这个key就肯定不存在,所以可以在缓存之前加一层布隆过滤器来拦截不存在的key。
单点登录是什么? 单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的,要实现共享登录状态,就要先共享 Session,比如可以将 Session 序列化到 Redis 中,让多个应用系统共享同一个 Redis,直接读取 Redis 来获取 Session。单点登录(Single Sign On, SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。
swoole和workman的区别? workerman 是纯php写的网络框架.支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议,拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组件。swoole是c/c++写的网络通讯扩展,Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。2.实性能差不多,workerman更稳定,发现问题,更易维护。
Windows命令建立文件和文件夹? 例如:type nul> newtest.txt 或者 type nul>.txt。方式二:先使用cmd进入需要新建文件的根目录下,使用md或者。例如:md newtest 或者 mkdir newtest。2> 新建非空文件 echo [fileContent]>.例如:md c:\testewtest。方式一:md【盘符:\】【路径\】新目录。例如:echo 文件中的内容>a.txt。1> 新建空文件 type nul>.例如:del newtest.txt。2. 删除文件 del*.*
即时通讯或者推送消息的守护进程?开启几个进程? b:使用nohup命令 , 比如 nohup php task.php & . 默认情况下 , 代码中echo或者print_r之类输出的文本会被输出到php代码同级目录的nohup.out文件中 . 如果你用exit命令或者关闭按钮等正常手段关闭终端 , 该进程不会被关闭 , 依然会在后台持续运行 . 但是如果终端遇到异常退出或者终止 , 该php进程也会随即退出 . 本质上 , 也并非稳定可靠的daemon方案 .守护进程的父进程是1号进程,也就是init进程。
thinkphp队列的使用? 但是,我这边没有生成,但是根据Queue.php源码可以看出,配置是在config.php文件中的一个键值对。看了网上其他的一些帖子说配置文件在统一目录下/config/queue.php。由于我是tp框架5.1的,所以选择了think-queue 1.1.6。由于框架版本原因可以选择适合的版本。
php定时任务 windows上和linux上有一个类似的cmd和bat文件,bat文件类似于shell文件,执行这个bat文件,就相当于依次执行里面的命令(当然,还可以通过逻辑来实现编程),所以,我们可以利用bat命令文件在windows服务器上面实现PHP定时任务。确定,这样一个定时任务就建立好了,在这个定时任务上右键,运行,这个定时任务就开始执行了,到点时,就会运行cron.bat处理,cron.bat再去执行php。而Linux中,使用命令行,用CronTab来定时任务,又是绝佳的选择,而且也是效率最高的选择。
swoole 是什么? 使 PHP 开发人员可以编写高性能的协程 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。Swoole是一个为PHP用C和C++编写的基于事件的高性能异步& 协程并行网络通信引擎;