简述论坛中无限分类的实现原理。(新浪)
创建类别表如下:
CREATETABLEcategory(
cat_idsmallintunsignednotnullauto_incrementprimarykey Redis的复制功能是基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生。
当Slave启动并连接到Master之后,它将主动发送一个SYNC命令(首先Master会启动一个后台进程,将数据快照保存到文件中[rdb文件]Master会给Slave发送一个
Ping命令来判断Slave的存活状态当存活时Master会将数据文件发送给Slave并将所有写命令发送到Slave)。
Slave首先会将数据文件保存到本地之后再将数据加载到内存中。
当 次链接或者是故障后重新连接都会先判断Slave的存活状态在做全部数据的同步,之后只会同步Master的写操作(将命令发送给Slave)
问题:
当Master同步数据时若数据量较大而Master本身只会启用一个后台进程来对多个Slave进行同步,这样Master就会压力过大,而且Slave恢复的时间也会很慢!
redis主从复制的优点:
(1)在一个Redis集群中,master负责写请求,slave负责读请求,这么做一方面通过将读请求分散到其他机器从而大大减少了master服务器的压力,另一方面slave专注于提供
读服务从而提高了响应和读取速度。
(2)在一个Redis集群中,如果master宕机,slave可以介入并取代master的位置,因此对于整个Redis服务来说不至于提供不了服务,这样使得整个Redis服务足够安全。
(3)水平增加Slave机器可以提高性能
78、怎么解决跨域
JSONP
添加响应头,允许跨域
代理的方式
79、json和xml区别,各有什么优缺点
(1)可读性方面:基本相同,XML的可读性比较好;
(2)可扩展性方面:都具有良好的扩展性;
(3)编码难度方面:相对而言,JSON的编码比较容易;
(4)解码难度:JSON的解码难度基本为零,XML需要考虑子节点和父节点;
(5)数据体积方面:JSON相对于XML来讲,数据体积小,传递的速度比较快;
(6)数据交互方面:JSON与javascript的交互更加方便,更容易解析处理,更好的数据交互;
(7)数据描述方面:XML对数据描述性比较好;
(8)传输速度方面:JSON的速度远远快于XML。
80、Trait优先级
在trait继承中,优先顺序依次是:来自当前类的成员覆盖了trait的方法,而trait则覆盖了被继承的方法
80、Trait优先级
在trait继承中,优先顺序依次是:来自当前类的成员覆盖了trait的方法,而trait则覆盖了被继承的方法
81、a引用b,报错c里面类重复定义,循环引用会出现什么问题
82、下面员工3的薪水大于其主管的薪水,一条SQL找到薪水比下属低的主管
idusernamesalarypid1anull2bnull3c014dSELECTa.*,b.*
FROM`user`asa
LEFTJOIN`user`asbONa.pid=b.idANDa.salaryb.salary
WHEREb.id0;
82、在一个坐标系内有一个N个点组成的多边形,现在有一个坐标点,写代码或思路来判断这个点是否处于多边形内
分析一个问题:php-fpm的日志正常,但客户端却超时了,你认为可能是哪里出了问题,怎么排查?
检查nginxlog,请求是否达到nginx和是否正常转发给php-fpm
进程间通信方式有哪些
1)管道管道分为有名管道和无名管道无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。有名管道也是一种半双工的通信方式,但是它允许无亲缘关系进程间的通信。
2)信号量信号量是一个计数器,可以用来控制多个线程对共享资源的访问.,它不是用于交换大批数据,而用于多线程之间的同步.它常作为一种锁机制,防止某进程在访问资源时其它进程也访问该资源.因此,主要作为进程间以及同一个进程内不同线程之间的同步手段.
3)信号信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生.
4)消息队列消息队列是消息的链表,存放在内核中并由消息队列标识符标识.消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点.消息队列是UNIX下不同进程之间可实现共享资源的一种机制,UNIX允许不同进程将格式化的数据流以消息队列形式发送给任意进程.对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制.通过使用消息类型,进程可以按任何顺序读信息,或为消息安排优先级顺序.
5)共享内存共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问.共享内存是最快的IPC(进程间通信)方式,它是针对其它进程间通信方式运行效率低而专门设计的.它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步与通信.
6)套接字:可用于不同及其间的进程通信
88、主从复制,从服务器会读取到主服务器正在回滚的数据吗?主数据库写成功,从服务器因为一些原因写失败, 会出现什么情况?主从复制如果键冲突怎么办?
不会;主从数据不一致;正常是不会出现这种情景,具体看情况,是否可以修复,恢复到之前的时间点,然后追回同步。
89、事务有几种隔离级别?事务的隔离级别是怎么实现的?