PHP 2020经典面试题集( 四 )


 
5.cpu利用
 
redis单线程模型只能使用一个cpu,可以开启多个redis进程
 
总结二:
 
1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别 。
2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储 。
3.Redis支持数据的备份,即master-slave模式的数据备份 。
4.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用 。
我个人认为最本质的不同是Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存
 
总结三:
 
redis和memecache的不同在于:
 
1、存储方式:
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
redis有部份存在硬盘上,这样能保证数据的持久性 。
2、数据支持类型:
redis在数据支持上要比memecache多的多 。
3、使用底层模型不同:
新版本的redis直接自己构建了VM 机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求 。
4、运行环境不同:
redis目前官方只支持linux 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁 。但是没有放到主干上
 
memcache只能当做缓存,cache
redis的内容是可以落地的,就是说跟MongoDB有些类似,然后redis也可以作为缓存,并且可以设置master-slave
25.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列 。
drop table table1  create table table1(  
    a int,  
    b int,  
    c int  )  insert into table1 values(22,24,23)  
  select * from table1  
  select (case when a>b then a else b end),(case when b>c then b else c end)  from table1  
  select (case when a>b then a  
             when a>c then a  
             when b>c then b else c  
             end)  from table1
26.安装Linux系统中,用netconfig程序对网络进行配置,要输入哪些内容?
会让用户输入主机名、域名、域名服务器、IP地址、网关地址和子网掩码等必要信息
27. PHP 如何写接口给人家调用?
public function  authenticationApi($data,$url){       
 $ch  = curl_init();       
  curl_setopt($ch, CURLOPT_URL, $url);        
  curl_setopt($ch, CURLOPT_POST, 1);        
  curl_setopt($ch, CURLOPT_HEADER, 0);        
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
  //输出格式可以转为数组形式的json格式        
  $tmpInfo = curl_exec($ch);        
  curl_close($ch);        
  return $tmpInfo;    
  }
28.用PHP header()函数实现页面404错误提示功能
Header("HTTP/1.1 404 Not Found");
29.heredoc结构及用法
echo <<<EOT
   <html>
   <head><title>主页</title></head>
   <body>主页内容</body>
   </html>
EOT;
 
注意:结束标识符所在的行不能包含任何其它字符除";"
30.nowdoc结构及用法
$str = <<<'EOD'
       Example of string
       spanning multiple lines
       using nowdoc syntax.
EOD;
31.JAVAscript 判断弹出窗口是否被屏蔽程序代码
var wroxWin = window.open("http://www.111cn.net", "_blank");if (wroxWin == null) {
    alert("糟糕!弹出窗口被屏蔽了");}
32. php序列化和反序列化用的函数
serialize() 序列化
 
unserialize() 反序列化
33. 利用下表结构,写出发贴数最多的十个人名字的SQL语句(members(id,username,posts,pass,email)
select memebers.username from members group by posts desc limit 10


推荐阅读