北京同城必应科技有限公司4月招聘面试题153道2020425

Redis插入数据都是插入到列表右侧,因此读取数据也是从右侧读取()

此题为判断题(对,错)。


正确答案:错


Redis中往集合中添加数据,使用关键字()

A.sadd

B.add

C.append

D.sappend


正确答案:A


Redis是一个开源的使用()语言编写

A.ANSIC

B.C++

C.JAVA

D.Python


正确答案:A


Redis是()数据库

A.关系数据库

B.键值数据库

C.列存数据库

D.图数据库


正确答案:B


Scrapy每一次发起请求之前都会在这里检查网址是否重复。因此如果确实需要再一次爬取数据,在Redis中把这个Key删除即可。()

此题为判断题(对,错)。


参考答案:对


北京同城必应科技有限公司4月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:遇到反爬机制怎么处理?可用的回答 : 反爬机制: headers方向 判断User-Agent、判断Referer、判断Cookie。 将浏览器的headers信息全部添加进去 注意:Accept-Encoding;gzip,deflate需要注释掉 问题 Q2:scrapy和scrapy-redis的区别?可用的回答 : scrapy是一个爬虫通用框架,但不支持分布式,scrapy-redis是为了更方便的实现scrapy分布式爬虫,而提供了一些以redis为基础的组件 为什么会选择redis数据库?因为redis支持主从同步,而且数据都是缓存在内存中,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高 什么是主从同步?在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave), 当客户端向从服务器发送SLAVEOF命令,要求从服务器复制主服务器时,从服务器首先需要执行同步操作,也即是,将从服务器的数据库状态更新至主服务器当前所处的数据库状态 问题 Q3:提到Python中局部变量和全局变量的规则是什么?可用的回答 :局部变量:如果在函数体内的任何位置为变量赋值,则假定它是本地的。全局变量:仅在函数内引用的那些变量是隐式全局变量。问题 Q4:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q5:遇到过得反爬虫策略以及解决方法?可用的回答 : 反爬虫策略: 1.通过headers反爬虫 2.基于用户行为的发爬虫(同一IP短时间内访问的频率,封IP) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成) 4.对部分数据进行加密处理的(数据是乱码) 解决方法: 1. 对于基本网页的抓取可以自定义headers,添加headers的数据 2. 使用多个代理ip进行抓取或者设置抓取的频率降低一些, 3. 动态网页的可以使用selenium + phantomjs 进行抓取 4. 对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。 问题 Q6:django 中当一个用户登录 A 应用服务器(进入登录状态),然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?可用的回答 :如果用户在A应用服务器登陆的session数据没有共享到B应用服务器,那么之前的登录状态就没有了。问题 Q7:常见的HTTP方法有哪些?可用的回答 : GET:请求指定的页面信息,返回实体主体; HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于捕获报头; POST:向指定资源提交数据进行处理请求(比如表单提交或者上传文件),。数据被包含在请求体中。 PUT:从客户端向服务端传送数据取代指定的文档的内容; DELETE:请求删除指定的页面; CONNNECT:HTTP1.1协议中预留给能够将连接方式改为管道方式的代理服务器; OPTIONS:允许客户端查看服务器的性能; TRACE:回显服务器的请求,主要用于测试或者诊断。 问题 Q8:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q9:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中 逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个 StopIteration异常 2)生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需 要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后 一次执行的位置和所有的数据值) 区别:生成器能做到迭代器能做的所有事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁, 而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态 的自动方法,当发生器终结时,还会自动抛出StopIteration异常 问题 Q10:如何在Python中实现多线程?可用的回答 :Python有一个多线程库,但是用多线程来加速代码的效果并不是那么的好,Python有一个名为Global Interpreter Lock(GIL)的结构。GIL确保每次只能执行一个“线程”。一个线程获取G

在Ubuntu下若要运行Redis可以使用进入解压以后的文件夹并运行命令redis-server.redis.windows.conf启动Redis()

此题为判断题(对,错)。


参考答案:错


华为云中间件DCS可以满足用户高读写性能及快速数据访问的业务诉求,但对主流缓存引擎(Redis、Memcached、Ignite)兼容性不够。()

此题为判断题(对,错)。


答案:错误


下列选项中属于非关系型数据库的是()

A、MySQL

B、PostgreSQL

C、SQLserver

D、Redis


答案:D


使用scrapy-redisl构建分布式爬虫,需要在settings.py文件中设置()。

A、SCHEDULER=Scrapy-redisschedulerSchedule

B、SCHEDULER='SCRAPYschedulerScheduleCDUPEFILTER_

C、LASSscrap_redis.dupefilterRfpdupefilter

D、dupefilter-class=scrap.dupefilterRfpdupefilter'


参考答案:A


Redis中的值可以支持()。

A.列表

B.哈希

C.集合

D.有序集合


参考答案:ABCD

更多 “北京同城必应科技有限公司4月招聘面试题153道2020425” 相关考题
考题 目前大型网站的基础架构大都采用了负载均衡+数据库主从+缓存+分布式存储+()的形式。A、爬虫技术B、矩阵C、队列正确答案:C

考题 Django原生提供了哪些维度的缓存?()A、整站缓存B、视图层缓存C、模板片段缓存D、redis缓存正确答案:A,B,C

考题 腾讯云的集中式云数据库产品主要分为CDB和CRS,下列关于CDB和CRS说法不正确的是()。A、CDB是腾讯云提供的关系型数据库,基于PCI-eSSD的存储介质,提供强悍存储性能B、CDB默认支持主从实时热备,并提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案C、CRS是腾讯云打造的兼容Redis协议的存储和缓存服务D、CRS中包括Redis、Memcached、NoSQL答案:D

考题 Redis是一个完全开源免费的、遵守BSD协议的、内存中的数据结构存储,它既可以作为数据库,也可以作为____和____。参考答案:缓存、消息代理

考题 Redis是一种NoSQL数据库,具体地说,是( )存储数据库。A.键-值 B.文档 C.图形 D.XML答案:A解析:小编正在快马加鞭来的路上(详见视频讲解)

考题 为了便于Redis缓存数据的传输,需要将实体类实现序列化接口____。参考答案:Serializable

考题 关于Redis的说法,以下错误的是()A、Redis是一个完全开源免费的、使用Java开发的、遵守BSD协议的、内存中的数据结构存储。B、Redis可以作为数据库使用C、Redis可以作为缓存中间件使用D、Redis可以作为消息代理使用参考答案:A

考题 阅读以下关于分布式数据库缓存设计的叙述,在答题纸,上回答问题1至问题3.[说明]某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统,采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。 在经过充分讨论,该公司最终决定采用刘工的方案。 [问题1](9分)在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。表4- 1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表4-1中的空(1) ~ (6) 。表4-1[问题2](8分)刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。[问题3](8分)请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。答案:解析:[问题1](1)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。(2)不支持(3)支持(4)不支持(5)支持(6)弱支持,只能保证事务中的每个操作连续执行 [问题2]主从复制集群、数据分片(Sharding)集群 [问题3]客户端分片、Twemproxy、Redis Cluster、Proxy + Redis Cluster

考题 Linux系统中,管理员先执行ps -ef |grep redis,其作用是( )。A.结束redis进程 B.查看与redis有关的进程情况 C.查看进程grep D.结束grep进程 答案:B解析: ps是linux系统中查看进程相关信息的指令,常用的参数有如 -A  显示所有程序。,-e  此参数的效果和指定"A"参数相同。-f  显示UID,PPIP,C与STIME等信息。通常可以和管道命令联合使用,如 ps -ef |grep redis中,grep命令是查找后面redis,中间的|是管道命令,是指ps命令与grep同时执行。最终这条命令的意思是显示有关redis有关的进程

考题 判断题华为云中间件DCS可以满足用户高读写性能及快速数据访问的业务诉求,但对主流缓存引擎(Redis、Memcached、Ignite)兼容性不够。A 对B 错正确答案:对解析:暂无解析