当前位置:首页 > 面试大全 > 面试题百日百刷-Redis篇(三)

面试题百日百刷-Redis篇(三)

6个月前 (05-26)45

面试题百日百刷-Redis篇(三) _ Java侠

锁屏面试题百日百刷,每个工作日坚持更新面试题。锁屏面试题app、小程序现已上线,官网地址:https://www.demosoftware.cc/#/introductionPage。已收录了每日更新的面试题的所有内容,还包含特色的解锁屏幕复习面试题、每日编程题目邮件推送等功能。让你在面试中先人一步,吊打面试官!接下来的是今日的面试题:

 

 

====RedisPipeline有什么好处,为什么要用pipeline

 

可以将多次 IO 往返的时间缩减为一次,前提是 pipeline 执行的指令之间没有因果相关性。使用redis-benchmark 进行压测的时候可以发现影响 redis QPS 峰值的一个重要因素是 pipeline 批次指令的数目。

 

 

 

====是否使用过 Redis 集群,集群的原理是什么?

 

1. Redis Sentinal 着眼于高可用, 在 master 宕机时会自动将 slave 提升为master, 继续提供服务。

 

2. Redis Cluster 着眼于扩展性, 在单个 redis 内存不足时, 使用 Cluster 进行分片存储。

 

 

 

====Redis 集群方案什么情况下会导致整个集群不可用?

 

ABC 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了,那么整个集群就会以为缺少 5501-11000 这个范围的槽而不可用。

 

 

 

====Redis 支持的Java 客户端都有哪些?官方推荐用哪个?

 

RedissonJedislettuce 等等, 官方推荐使用 Redisson

 

 

 

====Jedis Redisson 对比有什么优缺点?

 

Jedis Redis Java 实现的客户端, 其 API 提供了比较全面的 Redis 命令的支持;Redisson 实现了分布式和可扩展的 Java 数据结构,和 Jedis 相比,功能较为简单, 不支持字符串操作, 不支持排序、事务、管道、分区等 Redis 特性。Redisson 的宗旨是促进使用者对 Redis 的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

 

 

 

====Redis 如何设置密码及验证密码?

 

设置密码: config set requirepass 123456 授权密码:auth 123456

 

 

 

====说说 Redis 哈希槽的概念?

 

Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念, Redis 集群有214次方(16384)个哈希槽,每个key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

 

 

 

====Redis用了哈希槽的概念,而没有用一致性哈希算法,这样做的原因是为什么呢?

 

Redis Cluster是自己做的crc16的简单hash算法,没有用一致性hashRedis的作者认为它的crc16(key) mod 16384的效果已经不错了,虽然没有一致性hash灵活,但实现很简单,节点增删时处理起来也很方便。

 

 

 

====Redis 集群的主从复制模型是怎样的?

 

为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型,每个节点都会有 N-1 个复制品

 

 

 

====Redis 集群会有写操作丢失吗?为什么?

 

Redis 并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。

 

 

 

====Redis 集群之间是如何复制的?

 

异步复制

 

 

 

====Redis 集群最大节点个数是多少?

 

214次方(16384)

 

 

 

====Redis 集群如何选择数据库?

 

 Redis 集群目前无法做数据库选择, 默认在 0 数据库。

 

 

 

====说一说Redis中的事务?

 

1Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:

 

1)批量操作在发送 EXEC 命令前被放入队列缓存。

 

2)收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。

 

3)在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

 

2一个事务从开始到执行会经历以下三个阶段:

 

开始事务。

 

命令入队。

 

执行事务。

 

3、redis中相关的指令有:

 

DISCARD

 

取消事务,放弃执行事务块内的所有命令。

 

EXEC

 

执行所有事务块内的命令。

 

MULTI

 

标记一个事务块的开始。

 

UNWATCH

 

取消 WATCH 命令对所有 key 的监视。

 

WATCH key [key ...]

 

监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

 

4单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。

 

事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

 

redis 127.0.0.1:7000> multi

 

OK

 

redis 127.0.0.1:7000> set a aaa

 

QUEUED

 

redis 127.0.0.1:7000> set b bbb

 

QUEUED

 

redis 127.0.0.1:7000> set c ccc

 

QUEUED

 

redis 127.0.0.1:7000> exec

 

1) OK

 

2) OK

 

3) OK

 

 

 

====Redis key 的过期时间和永久有效分别怎么设置?

 

使用EXPIRE PERSIST 命令。

 

 

 

====Redis 如何做内存优化?

 

尽可能使用散列表( hashes), 散列表( 是说散列表里面存储的数少) 使用的内存非常小, 所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的 web 系统中有一个用户对象, 不要为这个用户的名称, 姓氏, 邮箱, 密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面.

 

 

 

更多面试题可关注"demo锁屏面试题"公众号通过小程序或App获取面试题和学习资源

面试题百日百刷-Redis篇(三) _ Java侠

 

作者:demo锁屏面试题
来源链接:https://www.cnblogs.com/demosoftware/p/14995196.html

标签: Redis面试题

“面试题百日百刷-Redis篇(三)” 的相关文章

面试题:缓存Redis与Memcached的比较 有用

  Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网...

美团面试题:Redis 内存满了怎么办?

美团面试题:Redis 内存满了怎么办?

我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 正文如下:...

2022年Redis最新面试题第3篇

2022年Redis最新面试题第3篇

最近整理一份关于Redis常见面试题的,也会根据自己的经验, 标注一些出现的概率,最高5颗★出现的概率最高。比如这样: Redis 最适合的场景, 可以简单的说说吗?出现概率: ★...

史上最全redis面试题及答案吊打面试官

史上最全redis面试题及答案吊打面试官

1,什么是Redis? 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应...

面试题之Redis是否支持事务

面试题之Redis是否支持事务

联想软开暑期实习 一面 一、问题 刚说了MySQL事务,说一下Redis是否支持ACID 我:balabal.... 面试官:中间原子性说错了 注:以下为一些不太...

2021最新 Redis面试题精选(附刷题小程序)

2021最新 Redis面试题精选(附刷题小程序)

精选Redis常见面试题50题,包含了基础知识、集群、并发、优化等各个方面,便于快速巩固、复习知识点; 祝找到理想的工作。 推荐使用小程序阅读 为了能让您更加方便...

Redis面试总结&史上最全Redis面试题及答案(转)

Redis 在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在 Redis 的使用和原理方面对小伙伴们进行各种***难。作为一名在互联网技术行业打击过成百上千名【请允许我夸...

Redis面试题(哨兵、复制、事务、集群、持久化)

Redis主要有哪些功能? 1、哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器...

Redis高频面试题汇总(2021最新版)

Redis高频面试题汇总(2021最新版)

    本文已收录于专栏 ⭐️《Redis面试题汇总——2021最新版本》⭐️ 上千人点赞收藏,全套Redis高频面试题,...

Redis 200道面试题及答案 【2022年最新版】

Redis 200道面试题及答案 【2022年最新版】

Redis面试题及答案 【最新版】Redis面试题大全,发现网上很多Redis面试题及答案整理都没有答案,所以花了很长时间搜集,本套Redis面试题大全 如果不...