redis,nginx相关面试

ngx_accept_disabled = ngx_cycle->connection_n / 8
    - ngx_cycle->free_connection_n;

if (ngx_accept_disabled > 0) {
    ngx_accept_disabled--;

} else {
    if (ngx_trylock_accept_mutex(cycle) == NGX_ERROR) {
        return;
    }

    if (ngx_accept_mutex_held) {
        flags |= NGX_POST_EVENTS;

    } else {
        if (timer == NGX_TIMER_INFINITE
                || timer > ngx_accept_mutex_delay)
        {
            timer = ngx_accept_mutex_delay;
        }
    }
}



     1. 介绍项目  
     2. 项目有没有用过工作流?  
     3. 没有用工作流,那并行操作怎么办,一个工单,两个人操作  
     4. session共享,redis怎么存储session,session失效机制  
     5. session默认过期时间,过长会怎么样  
     6. nginx负载均衡的算法怎么实现的,懵逼,说没看过  
     7. redis主从是怎么选取的  
     8、redis插槽的分配  
     9、redis复制的过程  
     10、redis主节点宕机了怎么办,还有没有同步的数据怎么办  
     .....反正一大堆redis的问题  
     11、重入锁是怎么计数的  
     12、NIO了解过吗,BIO呢  
     13、tcp、udp的区别  
     14、tcp怎么保证可靠传输  
     15、三次握手  
     16、快排,说了原理,然后问和冒泡的区别,说了快排是用了分治的思想  
     17. ClassLoader,Long是由哪个加载器加载的,我说了BootStrap  
     18、秒杀系统设计,超卖怎么搞  
     19、数据库优化,说了表结构的优化  

     20、常规的有什么问题想问他



导师已经明确不让出去了,呵呵,找实习到此为止,说说经历。 2月3号投第一份简历,网易雷火,简历应该未通过。 之后陆陆续续投了很多公司: 腾讯:

一面电话面,先聊了项目,之后问问题,都是基础,例如tcp和udp的区别,分别有什么应用场景,我说了两者常见场景,他追问了为什么。后面问了很多基础都是c艹的比较简单我就不写了,最后问了两个问题我没答上来:listen的第二个参数什么意思,什么是io密集和cpu密集。

本以为挂了,后来隔两天收到现场面试的通知。到了北京,一面面试官又面了一轮,问的不难,算法也不难。二面总监面,问得很广,从基础知识到memchache的网络模型总体主要针对简历。三面hr没啥好说了。

阿里巴巴:

问了多进程同时拥有同一个描述符的情况,没实际遇到过,灵机一动想到了epoll惊群并说了下nginx的解决办法。面试官又问多线程情况下如何保证每个线程都能平均io,我问是不是负载均衡,他说是,我就说了用线程池加round

robin。他就追问怎么实现线程池,我说条件变量加blocking

queue...后来有个关于多线程往同一个fd写数据,其中一个线程写完是否需要等待对端回应,跟他争论很久,最终还是屈服了....最后一面小哥就说了我通过结果到了3周以后才收到二面,二面的总体思路就是问我愿不愿意转java...我当然说愿意啊。

百度 面了两个部门,第一个部门时间要求6个月直接over

第二个部门云计算,一面电话40分钟全是问题,面试官一个接一个的问,具体大概有:topK问题,条件变量虚假唤醒,如何复现一个死锁,如何避免死锁,redis如何实现分布式锁,redis如何实现事物,reactor和proactor的区别,select和poll的区别,epoll为何高效,还问了些c艹的我忘了,反正不难。后来就收到二面通知,在北京百度总部,那地方真他妈大,2面上来写代码,第一个c艹封装一个循环队列,第二个求数组交集,还是比较简单,后来问了一些问题不记得了。等了一段时间hr面,等的时候还是挺急的,毕竟赶火车,时间是硬伤,公司希望多一些时间考察实习生,最后hr说没办法现在给offer,让校招加油,送我到门口,gg斯密达

你可能感兴趣的:(redis,nginx,面试)