都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有答上来. 下面分享了这次阿里面试关于分布式的一些题目,之后还整理了一些关于分布式的学习资料 01 分布式之 Redis篇 (1)阿里 redis面试题 怎么理解 Redis 事务? Redis 如何做内存优化? Redis 回收进程如何工作的? watch dog 自动延期机制 Redis 分布式锁…
1.1 redis基础面试题 1.什么是Redis?简述它的优缺点? 1. Redis本质上是一个Key-Value类型的内存数据库,很像memcached. 2. 整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存. 3. 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB. 4. Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大…
1.说说 Redis 都有哪些应用场景? 缓存:这应该是 Redis 最主要的功能了,也是大型网站必备机制,合理地使用缓存不仅可以加 快数据的访问速度,而且能够有效地降低后端数据源的压力. 共享Session:对于一些依赖 session 功能的服务来说,如果需要从单机变成集群的话,可以选择 redis 来统一管理 session. 消息队列系统:消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务 解耦.非实时业务削峰等特性.Redis提供了发布订阅功能和阻塞队列的功 能,虽然和专业…
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略.redis 提供 6种数据淘汰策略:  volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰  volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰  volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰  allkeys-lr…
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源,有面试点思维导图,欢迎[Star]和[完善] 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难. 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法). 于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写<吊打面试官>系列,希望能帮助各位读…
前言 现在大家的工作生活基本已经是回归正轨了,最近也是迎来了跳槽面试季,有些人已经拿到了一两个offer了. 这段时间收集了阿里.腾讯.百度.京东.美团.字节跳动等公司的Java面试题,总结了Redis系列的高频面试题: 1.Redis持久化机制 2.缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级等问题 3.热点数据和冷数据是什么 4.Memcache与Redis的区别都有哪些? 5.单线程的redis为什么这么快 6.redis的数据类型,以及每种数据类型的使用场景 7.redis的过期策略…
阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式) 概述 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库. Redis 可以存储键和五种不同类型的值之间的映射.键的类型只能为字符串,值支持五种数据类型:字符串.列表.集合.散列表.有序集合. 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒…
一.memcached与redis的区别? 1.存储方式不同.memcached把数据全部存在内存之中,断电之后会挂掉,而redis虽然也用到了内存,但是会有部分数据存在硬盘中,保证数据持久性. 2.数据支持类型不同.memcached对数据支持比较简单,而redis支持数据类型较丰富,如string.list.set.sorted set.hash. 3.底层实现不同.一般调用系统函数,会消耗比较多的时间去请求,redis自己构建了vm,速度会更快. 二.redis数据的淘汰策略? 1.vol…
介绍:Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的 API的非关系型数据库. 传统数据库遵循 ACID 规则.而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理. Github 源码:https://github.com/antirez/redis Redis 官网:https://red…
Redis 1级(入门基础) 1.Redis有哪些数据类型? string,list,set,sorted set(Zset),hash 2.集合和列表有什么区别? 列表是可以从两端推入.推出数据的队列:列表可以存储相同字符: 集合是无序列表(只能用SADD来添加元素):使用散列(hash)保证存储的字符不相同:集合支持交.并.差等计算(SINTER.SUNION.SDIFF): 3.有序集合和散列有什么区别? 散列存储键值对: 有序集合使用成员member来存储键,用分值(浮点数)来存储值:可…
使用Redis有哪些好处? 速度快 基于内存,避免了磁盘I/O的瓶颈. 单进程单线程,减少了线程上下文切换的开销 利用队列技术将并行访问变为串行访问,消除了传统数据库并发访问控制锁的开销. Redis全程使用hash结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化,如压缩表,对短数据进行压缩存储,再如,跳表,使用有序的数据结构加快读取的速度. 支持丰富的数据类型:支持string.list.set.sorted set.hash. 支持事务操作,保证操作原子性. 丰富的特性:可用于…
Redis面试题总结(1) 2018年02月28日 17:42:21 LSX丨笔头先生 阅读数:3568更多 个人分类: 面试题总结   (1)什么是redis? Redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存.因为是纯内存操作,Redis的性…
介绍:Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的 API的非关系型数据库. 传统数据库遵循 ACID 规则.而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理. Github 源码:https://github.com/antirez/redis Redis 官网:https://red…
介绍:Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的 API的非关系型数据库. 传统数据库遵循 ACID 规则.而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理. Github 源码:https://github.com/antirez/redis Redis 官网:https://red…
程序员面试时都考些什么? 一个面试官得意洋洋地说自己面了一个百度T7,出了一道coding题,结果对方连最长上升子序列都写不出来.   楼主本想嘲弄一下百度T7的代码水平低,没想到网友们炸开了锅,纷纷diss他出的这道题毫无意义,这样面试只能招到应付考试的人,错过合适的人选.一句话,面试官水平太低!                 还有人挖苦楼主,难道你工作中会天天用到这些东西?     楼主很不服气,回怼:T7连这个都不会,和应届生有什么区别?   一个百度员工说,就算考robin二分查找,他…
身为 Java Web 开发我发现很多人一些 Web 基础问题都答不上来. 上周我面试了一个三年经验的小伙子,一开始我问他 HTTP/1.HTTP/2相关的他到是能答点东西出来. 后来我问他:你知道 HTTP 的本质是什么吗? 他支支吾吾答不出来. 我接着问那你知道什么是 HTTP 和 RPC 的关系吗? 为什么要有 RPC? 他眼睛盯着桌上的水,额了半天. 最后我跟他说回家等通知吧(当然还有很多都答不上来哈,多方位我都问了). 面完试之后我回去问了同事相同的问题,我发现答的也不够好,有些地方有…
Redis 持久化机制 Redis 是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来 保证数据持久化.当 Redis 重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目 的.实现:单独创建 fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然 后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文 件,然后子进程退出,内存释放. RDB 是 Redis 默认的持久化方式.按照一定的时间周期策略把内存的数据以快照的形式保…
1:使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 2:Memcache与Redis的区别都有哪些? (1).存储方式 Memecach…
1.     简述常用高可用技术 解答: Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现.在master和backup之间通过master主动降低自己的权值或者backup检测到master出现故障时,backup将会接管master的工作,继续服务. HAproxy:HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的w…
问题:redis-cli连接客户端后,执行命令没有反应   解决方法:通过指定一个开启守护进程的配置文件来启动服务,redis-server ../redis.conf 说明:redis.conf是我编辑开启了守护进程的一个配置文件daemonize为yes   原因:./redis-server启动时不填写配置文件地址加载默认的redis的配置,没有开启守护进程 我redis的server和client是在一台虚机上,启动redis服务后我直接ctrl+z了.导致server停止了,所以执行c…
Reids:单线程+io多路复用机制 Redis与Memcached的区别: 一.memcached值是简单字符串,redis支持hash.set.list等复杂数据类型 二.redis可持久化数据,容灾能力强.Memcached只存于内存中. 三.redis是单线程操作,核心是io多路复用机制,效率更高.Memcached是多线程加锁 Redis的两种持久化策略: 一.RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里…
Date:2019-11-12 读前思考: 面试官会问什么样的问题? 所问的问题背后真实的套路是什么? 喜欢问Redis哪些问题? 如何顺畅回答面试问的问题?吊打面试官. 1.什么是Redis? Redis的全称是Remote Dictionary Server,Redis本质上是一个key_value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据刷新到硬盘上进行保存.因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万…
1. Redis 是什么?都有哪些使用场景? 我们先来理解经典的CAP理论: 一致性:是指从数据层面来看的一致性. 可用性:是指从系统层面的可用性. 容错性:是指从网络层面的的容错性. 数据库逐渐从关系数据库向不同领域不同层次分化.随着读多写少场景的出现,导致需要读取数据的时间变慢,为了提升性能,出现了数据库缓存技术,对数据库的读取进行分离.web2.0时代,网民的生产力大增,存储总量也在增加,目前还是读多写少模式,原有的缓存技术显然不能满足写的压力,所以,出现了分库分表,实现读写分离.其中比较…
1.什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存. 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB. Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数…
通过面试多家大型互联网企业,总结了如下的高频面试题目: 1.redis 过期键的删除策略? (1)定时删除:在设置键的过期时间的同时,创建一个定时器 timer). 让定时器在键的过期时间来临时,立即执行对键的删除操作. (2)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键. (3)定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键 2.Redus的淘汰策略 redis 内存数据集大小上升到一定大小…
最近在找工作,面试官问了一些问题自己并没有回答上,这里做一个小结. http请求,请求头和响应头都有什么信息? 页面和服务器交互最常见的方式就是ajax,ajax简单来说是浏览器发送请求到服务端,然后服务端返回数据,常见的请求头和响应头如下图所示. 先看通用信息,通用信息有三个字段: 请求url, 请求方法, 状态码, 远程地址. 看下请求头Request Headers, Accept : 指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序.在Ajax代码中,可以使用X…
第1题:阅读下面的代码,默读出A0,A1至An的最终值. A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5))) A1 = range(10) A2 = [i for i in A1 if i in A0] A3 = [A0[s] for s in A0] A4 = [i for i in A1 if i in A3] A5 = {i:i*i for i in A1} A6 = [[i,i*i] for i in A1] 默读代码类的题目,相对来说是比…
Redis面试题大全含答案 Redis面试题大全含答案 1.什么是Redis?答:Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型. 2.Redis的特点什么是?1. 支持多种…
Redis 面试题汇总 1.Redis 使用场景有哪些? 答:Redis 使用场景如下: 记录帖子点赞数.点击数.评论数 缓存近期热帖 缓存文章详情信息 记录用户会话信息 2.Redis 有哪些功能? 答:Redis 功能如下: 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列 3.Redis 支持哪些数据类型? 答:Redis 支持的数据类型如下: String 字符串 List 列表 Set 无序集合 ZSet 有序集合 Hash 哈希类型 4.Redis 相比 Memc…
NoSQL数据库 DBEngines网站中会统计目前数据库在全世界的排名 1.1 什么是NoSQL 最常见的解释是"non-relational",很多人说它是"Not only SQL" NoSQL仅仅是一个概念,泛指非关系型数据库 区别于关系型数据库,他们不保证关系数据的ACID特性 1.2 NoSQL的特点 应用场景 高并发的读写 海量数据的读写 高可扩展性 速度快 不适用场景 需要事务支持 基于sql的结构化查询存储,处理复杂的关系,需要即席查询(用户自定义…