专项练习-10中间件-01Redis

1.
下面关于Redis持久化机制的说法,错误的是()

A
Redis的默认采用AOF持久化机制

B
RDB持久化机制是以快照形式存储数据结果,存储格式简单

C
AOF持久化机制是以日志形式存储操作过程,存储格式复杂

D
持久化的目的是防止数据的意外丢失,确保数据安全性

正确答案:A
官方解析:
这道题考察的是Redis持久化机制的理解,A说法正确,所以选AB选项、C选项、D选项都是正确的说法。

知识点:Redis
2.
下面关于Redis中set数据类型与list数据类型的比较,正确的说法是()

A
set中的数据具有唯一性,list中的数据不具有唯一性

B
set中的数据有序,list中的数据无序

C
set数据类型与list数据类型均可进行数学集合运算

D
set数据类型与list数据类型都是通过索引下表实现有序

正确答案:A
官方解析:
这道题考察的是Redis中set数据类型与list数据类型的比较,set中的数据具有唯一性,list中的数据不具有唯一性,所以是选AB选项中set中的数据无序;list中的数据有序;C选项中set数据类型可进行数学集合运算;D选项中list数据类型都是通过索引下表实现有序。

知识点:Redis
3.
关于RedisRDB持久化策略,说法错误的是

A
RDB持久化是将当前进程数据以生成快照的方式保存到硬盘的过程

B
Redis默认的持久化机制是RDB持久化机制

C
RDB持久化模式可以做到实时的持久化

D
执行BGSAVE命令时要执行fork操作创建子进程

正确答案:C
官方解析:
BGSAVE每次运行都要执行fork操作创建子进程,这属于重量级操作,不宜频繁执行,因此,RBD没法做到实时的持久化。

知识点:Redis
4.
下面关于Redis 中主从复制机制作用的说法,错误的是()

A
实现数据的热备份

B
当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复

C
分担服务器负载,提高服务器的并发量

D
实现主节点的自动故障转移

正确答案:D
官方解析:
这道题考察的是Redis  中主从复制机制的作用,实现主节点的自动故障转移是哨兵模式的作用,所以选DA选项中实现数据的热备份;B选项中当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;C选项中分担服务器负载,提高服务器的并发量都是正确的说法。

知识点:Redis
5.
下面关于Redis 数据存储中redisObject对象的说法,错误的是()

A
type字段表示对象的类型,占4个比特

B
encoding表示对象的内部编码,占4个比特

C
lru记录对象最后一次被命令程序访问的时间,占24个比特
D
refcount记录的是该对象被引用的次数,占4个字节

正确答案:C
官方解析:
这道题考察的是Redis 数据存储中的redisObject对象,lru记录对象最后一次被命令程序访问的时间,占据的比特数不同的版本不同,4.0版本占24个比特,在2.6版本占22比特,所以选CA选项中type字段表示对象的类型,占4个比特;B选项中encoding表示对象的内部编码,占4个比特;D选项中refcount记录的是该对象被引用的次数,占4个字节都是正确的说法。

知识点:Redis
6.
下面不属于Redis 中哨兵功能的是()

A
哨兵会不断得检查主节点和从节点是否正常工作

B
当主节点不能正常工作时,哨兵实现主节点的自动故障转移

C
哨兵可以将数据分散到多个节点

D
哨兵可以将故障转移的结果发送给客户端

正确答案:C
官方解析:
这道题考察的是Redis中哨兵功能,集群可以将数据分散到多个节点,所以选CA选项中哨兵会不断得检查主节点和从节点是否正常工作;B选项中当主节点不能正常工作时,哨兵实现主节点的自动故障转移;D选项中哨兵可以将故障转移的结果发送给客户端都是正确选项。

知识点:Redis
7.
下面关于Redis 中主从复制机制的操作,错误的说法是()

A
可以通过配置文件、启动命令、客户端命令三种方式开启主从复制

B
主从复制的开启是在从节点发起

C
slaveof no one命令可以用于断开主从复制关系

D
从节点断开主从复制关系后,会删除已有的数据

正确答案:D
官方解析:
这道题考察的是Redis  中主从复制机制的操作,从节点断开主从复制关系后,不会删除已有的数据,只是不再接受主节点新的数据变化,所以选DA选项、B选项、C选项都是正确的说法。

知识点:Redis
8.
下面关于Redis中事务和MySQL中事务的区别,错误的说法是()

A
Redis不支持事务回滚,MySQL支持事务回滚

B
RedisMulti事务的开始,以Exec执行事务的commands队列;MySQLBegin开启一个事务,以Commit提交事务

C
Redis实现事务基于commands队列; MySQL实现事务基于undo/redo日志

D
Redis默认开启事务;MySQL默认不开启事务

正确答案:D
官方解析:
这道题考察的是Redis中事务和MySQL中事务的区别,Redis默认不开启事务;MySQL默认开启事务,所以是选DA选项、B选项、C选项都是正确选项。

知识点:Redis
9.
下面关于Redis 中主从复制机制的说法,正确的是()

A
可以实现读写分离

B
可以实现自动故障转移

C
数据的复制是双向的,既可以由主节点到从节点,也可以由从节点到主节点

D
一个从节点可以没有主节点,也可以有主个从节点

正确答案:A
官方解析:
这道题考察的是Redis 中的主从复制机制,Redis 通过主从复制机制可以实现读写分离,所以选AB选项中Redis 的主从复制机制无法实现自动故障转移;C选项中数据的复制是单向的,只可以由主节点到从节点;D选项中一个从节点只能有一个主节点。

知识点:Redis
10.
下面关于RedisAOF持久化机制的常用配置,错误的说法是()

A
开启AOF需要在配置文件中配置appendonly yes

B
AOF缓存区的同步文件策略由参数appendfsync控制

C
开启AOF文件压缩需要在配置文件中配置rdbcompression yes

D
根据auto-aof-rewrite-min-size和auto-aof-rewrite-percentage参数确定自动触发条件

正确答案:C
官方解析:
这道题考察的是RedisAOF持久化机制的常用配置,开启RDB文件压缩需要在配置文件中配置rdbcompression yes,所以选CA选项、B选项、D选项都是正确说法。

知识点:Redis
11.
Redis提供了多种AOF缓冲区同步文件策略,由参数appendfsync控制。参数appendfsync的可选值不包括以下哪个选项()

A
always

B
everymin

C
everysec

D
no

正确答案:B
官方解析:
参数appendfsync不同值的含义如下:

- always:每执行一个写入命令,就对AOF文件执行一次冲洗操作;这种情况下服务器在停机时最多丢失一个命令,但这种方式会大大降低Redis服务器的性能

- everysec:每隔一秒,就会对AOF文件执行一次冲洗操作;这种情况下服务器在停机时最多丢失一秒之内的命令,这是一种兼顾安全和性能的折中方案

- no:不主动对AOF文件执行冲洗操作,由操作系统决定何时冲洗;这种情况下,服务器在停机时将丢失最后一次冲洗后执行的写入命令,丢失的数据量取决于系统的冲洗频率

知识点:Redis
12.
下面关于RedisRDBAOF两种持久化机制的比较,错误的是()

A
对业务数据敏感的应用场景选用AOF持久化机制

B
追求大数据集恢复速度的应用场景选用RDB持久化机制

C
AOF持久化机制比RDB持久化机制的存储速度快

D
AOF持久化机制比RDB持久化机制的恢复速度快

正确答案:D
官方解析:
这道题考察的是RedisRDBAOF两种持久化机制的比较,AOF持久化机制比RDB持久化机制的恢复速度慢,所以选DA选项、B选项、C选项都是正确的说法。

知识点:Redis
13.
下面关于Redis 2.8及以后版本中部分复制的相关概念,错误的说法是()

A
通过info Server命令,可以查看节点的服务器运行ID(runid)

B
当从节点保存的runid与主节点当前的runid不同时只能进行部分复制

C
复制偏移量(offset)代表主节点向从节点传递的字节数

D
复制积压缓冲区的作用是备份主节点最近发送给从节点的数据

正确答案:B
官方解析:
这道题考察的是Redis  中部分复制的相关概念,如果从节点保存的runid与主节点现在的runid不同,说明从节点在断线前同步的Redis节点并不是当前的主节点,只能进行全量复制,所以选BA选项、C选项、D选项都是正确选项。

知识点:Redis
14.
关于Redis 6.0版本的新功能的说法,错误的是()

A
Redis 6.0版本提供了ACL功能,支持更细粒度的权限控制

B
Redis 6.0版本后支持多线程执行命令

C
Redis 6.0版本在兼容 RESP2 的基础上支持 RESP3

D
Redis 6.0改进了命令行的超时选项

正确答案:B
官方解析:
这道题考察的是Redis 6.0版本的新功能, B选项中Redis 6.0版本的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程,所以选BA选项C选项、D选项都是正确的说法。

知识点:Redis

15.
下面关于Redis支持的zset数据类型,错误的说法是()

A
Redis 使用ziplist(压缩列表)来实现zset类型时需要满足zset类型元素个数小于zset-max-ziplist-entries

B
Redis 使用ziplist(压缩列表)来实现zset类型时需要满足zset类型所有member的长度小于zset-max-ziplist-value

C
zset通过用户额外提供一个评分(score)的参数来为集合中的成员进行排序,并且是插入有序

D
zset数据类型中成员及评分都是唯一不可重复的

正确答案:D
官方解析:
这道题考察的是Redis中zset数据类型的定义和特点,zset数据类型中成员是唯一不可重复的,但评分不是,所以是选DA选项中Redis 使用ziplist(压缩列表)来实现zset类型时需要满足zset类型元素个数小于zset-max-ziplist-entries;B选项中Redis 使用ziplist(压缩列表)来实现zset类型时需要满足zset类型所有member的长度小于zset-max-ziplist-value;C选项中zset通过用户额外提供一个评分(score)的参数来为集合中的成员进行排序,并且是插入有序都是正确的说法。

知识点:Redis
16.
redis在的有序集合中在数据量极少(小于128个)的情况下使用以下哪种存储方案

A
压缩表

B
跳跃表

C
散列表

D
双向链表

正确答案:A
官方解析:
zset底层的存储结构包括ziplist或skiplist,在同时满足有序集合保存的元素数量小于128个和有序集合保存的所有元素的长度小于64字节的时候使用ziplist,其他时候使用skiplist。

知识点:Redis
17.
下面关于Redis中zset数据类型与list数据类型的比较,错误的说法是()

A
zset与list中的数据都是有序的

B
zset相较于list更耗内存

C
zset相较于list访问中间元素更快

D
zset与list相比的底层数据结构都是链表

正确答案:D
官方解析:
这道题考察的是Redis中zset数据类型与list数据类型的比较,D选项错误,zset的底层数据结构是散列表和跳跃表,list的底层数据结构是链表,所以是选DA选项、B选项、C选项都是正确的说法。

知识点:Redis
18.
下面关于Redis中配置文件的说法,正确的是()

A
Redis同时支持bytes和bit两种单位

BRedis以“includes”的方式引入其他配置文件时,如果同一个配置项在不同配置文件中都有定义,那么以最后面的配置项为准

C
在高并发情况下设置较低的tcp-backlog值以避免TCP的慢连接问题

D
Redis支持通过loglevel配置项设置日志等级,共分三级,即debug、notice、warning

正确答案:B
官方解析:
这道题考察的是Redis中的配置文件,当Redis以“includes”的方式引入其他配置文件时,如果同一个配置项在不同配置文件中都有定义,那么以最后面的配置项为准,所以是选BA选项中Redis只支持bytes,不支持bit单位,C选项中在高并发情况下设置较高的tcp-backlog值以避免TCP的慢连接问题,D选项中Redis支持通过loglevel配置项设置日志等级,共分四级,即debug、verbose、notice、warning

知识点:Redis
19.
redis未授权的利用方法不包括以下哪种()

A
.写入ssh密钥

B
向web目录中写入webshell

C
向crontab中写入任务计划

D
向系统中增加用户和密码

正确答案:D
官方解析:
1.利用crontab反弹shell

直接向靶机的Crontab写入任务计划,反弹shell回来

2.写入webshell

当自己的redis权限不高时,可以向web里写入webshell,但需要对方有web服务且有写入权限

3.写ssh-keygen公钥然后使用私钥登陆

(1)redis对外开放,且是未授权访问状态

(2)redis服务ssh对外开放,可以通过key登入

知识点:Redis
20.
下面关于Redis支持的HyperLogLog数据类型,错误的说法是()

A
HyperLogLog数据类型的应用场景包括统计网站的UV(独立访客)

B
应用HyperLogLog数据类型时可能存在一定的错误率

C
HyperLogLog数据类型占用内存是固定的

D
HyperLogLog数据类型通过存储输入元素加速基数统计

正确答案:D
官方解析:
这道题考察的是RedisHyperLogLog数据类型的操作指令,HyperLogLog不存储输入元素,所以是选DA选项、B选项、C选项都是正确说法。

知识点:Redis
21.
下面关于Redis 6.0版本中的操作命令,正确的说法是()

A
使用ttl key时返回-1,表示该key已经过期

B
dbsize查看数据库的空间大小

C
flushall 删除所有数据库的所有 key

D
selectdb用于切换数据库

正确答案:C
官方解析:
这道题考察的是Redis 6.0版本中的操作命令,flushall 删除所有数据库的所有 key正确,所以是选CA选项中使用ttl key时返回-2,表示该key已经过期,B选项中dbsize查看当前数据库的key的数量,D选项中select用于切换数据库。

知识点:Redis
22.
下面关于Redis支持的list数据类型,错误的说法是()

A
list数据类型具有单键多值的特点

B
list数据类型底层是双向链表

C
list数据类型数据有序

D
list数据类型数据不支持索引下标操作

正确答案:D
官方解析:
这道题考察的是Redis中list数据类型,list数据类型数据支持索引下标操作,只是性能较差,所以是选DA选项中list数据类型具有单键多值的特点;B选项中list数据类型底层是双向链表;C选项中list数据类型数据有序都是正确的说法。

知识点:Redis
23.
下面关于RedisSDS(简单动态字符串)的说法,错误的是()

A
SDSC字符串的基础上加入了free和len字段

B
SDS可以实现修改字符串时内存的重分配

C
SDS可以存取二进制数据

D
由于SDS记录了长度,可以杜绝缓冲区溢出

正确答案:B
官方解析:
这道题考察的是RedisSDS,对于C字符串,如果要修改字符串,必须要重新分配内存,而对于SDS,由于可以记录len和free,因此解除了字符串长度和空间数组长度之间的关联,可以在此基础上进行优化:空间预分配策略(即分配内存时比实际需要的多)使得字符串长度增大时重新分配内存的概率大大减小;惰性空间释放策略使得字符串长度减小时重新分配内存的概率大大减小。所以选BA选项、C选项、D选项都是正确说法。

知识点:Redis
24.
下面关于通过执行Redis命令搭建集群的说法,正确的是()
A
各节点在启动节点阶段建立联系

B
集群配置文件需要人工修改

C
当数据库中半数的槽分配了节点,集群处于上线状态

D
集群中指定主从关系使用cluster replicate命令

正确答案:D
官方解析:
这道题考察的是通过Redis命令搭建集群的方法,集群中指定主从关系使用cluster replicate命令是正确的,所以选DA选项中各节点在启动节点阶段是独立的,并没有建立联系;B选项中集群配置文件由Redis节点维护,不需要人工修改;C选项中当数据库中的16384个槽都分配了节点时,集群处于上线状态。

知识点:Redis
25.
下面关于Redis集群的节点通信机制,正确的说法是()

A
数据节点负责存储数据,非数据节点提供了两个TCP端口进行通信

B
集群端口的端口号是普通端口的端口号+10000(数值可通过配置文件修改)

C
普通端口用于为客户端提供服务以及节点间数据迁移

D
集群端口用于节点之间的通信以及连接客户端

正确答案:C
官方解析:
这道题考察的是集群的节点通信机制,普通端口用于为客户端提供服务以及节点间数据迁移是正确的说法,所以选CA选项中在集群中,没有数据节点与非数据节点之分,并且集群中的每个节点,都提供了两个TCP端口;B选项中集群端口的端口号是普通端口的端口号+1000010000是固定值,无法改变);D选项中集群端口只用于节点之间的通信,不要使用集群端口连接客户端。


知识点:Redis
26.
下面关于Redis中的操作命令,错误的说法是()

A
flushdb 清空当前数据库中的所有 key

B
keys * 查看所有key

C
exists key 判断key是否存在

D
unlink key 非阻塞删除指定的key

正确答案:B
官方解析:
这道题考察的是Redis中的操作命令,keys * 查看当前库中所有key,所以是选BA选项中flushdb 清空当前库,C选项中existis key 判断key是否存在,D选项中unlink key  非阻塞删除指定的key都是正确的说法

知识点:Redis
27.
下面关于Redis 中哨兵系统的说法,正确的是()

A
客户端的每一次请求都会发向哨兵,哨兵再通过主节点处理请求

B
哨兵节点本质上是redis节点

C
在哨兵节点启动和故障转移阶段,各个节点的配置文件会被重写

D
哨兵节点在故障转移完成后,会将新的主节点信息发送给客户端,以便客户端及时切换主节点

正确答案:A
官方解析:
这道题考察的是Redis中哨兵功能,客户端在通过哨兵获得主节点信息后,会直接建立到主节点的连接,后续的请求会直接发向主节点,所以选AB选项、C选项、D选项都是正确选项。

知识点:Redis
28.
下面关于Redis中的故障转移机制,错误的说法是()

A
集群只实现了主节点的故障转移

B
在故障转移阶段,需要由主节点投票选出哪个从节点成为新的主节点

C
故障转移时间与参数cluster-node-timeout有关

D
cluster-node-timeout的默认值为1500ms

正确答案:D
官方解析:
这道题考察的是Redis中的故障转移机制,cluster-node-timeout的默认值为15000ms(15s),所以选DA选项、B选项、C选项都是正确说法。

知识点:Redis
29.
下面关于Redis集群数据分区规则,错误的说法是()

A
衡量哈希分区方法好坏的标准是保证数据分布均匀和增减节点对数据分布的影响两个因素

B
哈希取余分区的主要问题是节点数量发生变化时会引发大规模的数据迁移

C
一致性哈希分区的主要问题是当节点数量较少时,增加或删减节点会造成数据不平衡

D
带虚拟节点的一致性哈希分区通过槽解耦了数据和实际节点之间的关系

正确答案:A
官方解析:
这道题考察的是集群数据的分区规则,由于哈希的随机性,哈希分区基本可以保证数据分布均匀,因此在比较哈希分区方案时,重点要看增减节点对数据分布的影响,所以选AB选项、C选项、D选项都是正确的说法。

知识点:Redis
30.
下面关于Redis 中哨兵相关的配置,错误的是()

A
sentinel parallel-syncs规定了每次向新的主节点发起复制操作的从节点个数

B
sentinel failover-timeout是用来判断整个故障转移阶段的超时

C
sentinel down-after-milliseconds对主节点、从节点和哨兵节点的主观下线判定都有效

D
sentinel monitor 指定了主节点名称、主节点地址以及主节点客观下线的哨兵数量阈值

正确答案:B
官方解析:
这道题考察的是Redis中哨兵相关的配置,sentinel failover-timeout是用来判断其几个子阶段的超时,所以选BA选项中sentinel parallel-syncs规定了每次向新的主节点发起复制操作的从节点个数;C选项中sentinel down-after-milliseconds对主节点、从节点和哨兵节点的主观下线判定都有效;D选项中sentinel monitor 指定了主节点名称、主节点地址以及主节点客观下线的哨兵数量阈值都是正确选项。

知识点:Redis
1.
下面关于Redis的应用场景,错误的说法是()

A
Redis作为数据库实现海量数据的存储

B
作为中间件广泛应用于分布式缓存

C
Redis作为计算工具统计PVUV等数据

D
Redis可以实现分布式锁

正确答案:A
官方解析:
这道题考察的是Redis的应用场景,Redis作为一个内存数据库并不适用于存储大量数据,所以是选AB选项、C选项、D选项都是正确的说法。

知识点:Redis
2.
下面关于Redis的定义和特点,正确的说法是()

A
Redis是基于Java语言开发的一个开源的高性能数据库

B
Redis是一种非关系型数据库

C
Redis是一种多线程高性能的内存数据库

D
Redis只支持string(字符串)hash(哈希)list(列表)set(集合)zset(有序集合)五种数据类型

正确答案:B
官方解析:
这道题考察的是Redis的定义和特点,Redis是一种NoSQL(非关系型数据库)的数据库,所以是选BA选项中Redis是基于C语言开发的一个开源的高性能数据库,C选项中Redis是一种单线程高性能的内存数据库,D选项中Redis除支持string(字符串)hash(哈希)list(列表)set(集合)zset(有序集合)五种数据类型外,还支持geospatial、hyperloglog、bitmapden等数据类型

知识点:Redis
3.
下列关于Redis值类型说法错误的是

A
list保证数据线性有序且元素不可重复

B
hash的值本身也是一个键值对结构

C
set是无序不可重复的

D
zset是有序不可重复的

正确答案:A
官方解析:
list保证数据线性有序且元素可重复,它支持lpush、blpush、rpop、brpop等操作,可以当作简单的消息队列使用,一个list最多可以存储2^32-1个元素

知识点:Redis
4.
下面关于MemcachedRedis的比较,错误的说法是()

A
Memcached不支持数据持久化,Redis支持数据持久化

B
Redis只使用单核,Memcached可以使用多核

C
任何情况下Redis的内存利用率都会高于Memcached

D
RedisMemcached拥有更多的数据结构

正确答案:C
官方解析:
这道题考察的是MemcachedRedis的比较,使用key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached,所以选CA选项、B选项、D选项都是正确的说法。

知识点:Redis
5.
关于Redis的持久化,下列描述错误的是:()

A
RDB是以快照的形式,将内存中的数据整体拷贝到硬盘上。

B
执行RDB存储时会产生阻塞,因此RDB不适合实时备份,而适合定时备份。

C
AOF是以日志形式,将内存中的数据整体拷贝到硬盘上

D
AOF操作的实时性好,但是产生的数据体积大,数据的恢复速度慢。

正确答案:C
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:Redis
6.
下面关于Redis中string数据类型的数据结构,正确的说法是()

A
string的数据类型是简单静态字符串(simple static string)

B
string的内部结构实现上类似JavaHashMap

C
string进行扩容时是加倍现有空间

D
string采用预分配冗余空间的方式来减少内存的频繁分配

正确答案:D
官方解析:
这道题考察的是Redis中string数据类型的数据结构,string采用预分配冗余空间的方式来减少内存的频繁分配,所以是选DA选项中string的数据类型是简单动态字符串(simple Dynamic string),B选项中string的内部结构实现上类似JavaArrayListC选项中string扩容机制如下:当字符串长度小于 1M 时,扩容都是加倍现有的空间;如果超过 1M,扩容时一次只会多扩 1M 的空间,需要注意的是字符串最大长度为 512M。因此ABC三种说法都是错误的。

知识点:Redis
7.
下面不是Redis的命令的有?

A
clean

B
smem

C
keys

D
lrange

正确答案:A
官方解析:暂无官方题目解析,去讨论区看看吧!
知识点:Redis
8.
下面关于Redis支持的hash数据类型,正确的说法是()

A
Redis 使用ziplist(压缩列表)来实现hash类型时需要满足hash类型元素个数小于512B
hash是一个string的key和value的映射表

C
hash的应用场景包括查询共同好友、最新消息排行等

D
hash类型数据存入有序

正确答案:B
官方解析:
这道题考察的是Redis中hash数据类型的定义和特点,hash是一个string的key和value的映射表是正确的说法,所以是选BA选项中Redis 使用ziplist(压缩列表)来实现需要满足hash类型时当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个但可以进行配置),C选项中hash的应用场景是存储对象信息,D选项中zset类型数据存入有序。

知识点:Redis
9.
下面关于Redis选择单线程的原因,错误的说法是()

A
避免线程切换和竞争产生的消耗

B
避免同步机制的开销

C
实现简单,底层数据结构的设计无需考虑线程安全

D
提升网络请求处理速度

正确答案:D
官方解析:
这道题考察的是Redis选择单线程的原因,Redis6.0版本引入了多线程的目的是解决Redis在网络 I/O 上的性能瓶颈,所以是D选项说法错误,A选项、B选项、C选项都是正确的说法。

知识点:Redis
10.
下面关于Redis中list数据类型的操作指令,错误的是()

A
rpoplpush <key1> <key2>指令表示从<key1>列表右边吐出一个值插入到 <key2>列表左边

B
lrange mylist 0 -1可以取到mylist中的所有值

C
linsert <key> before <value> <newvalue>的返回值是新的列表

D
执行lpop/rpop <key>取完列表中所有值后,列表移除

正确答案:C
官方解析:
这道题考察的是Redis中list数据类型的操作指令,linsert <key> before <value> <newvalue>的返回值是新的列表长度,所以是选CA选项中rpoplpush <key1> <key2>指令表示从<key1>列表右边吐出一个值插入到 <key2>列表左边;B选项中lrange mylist 0 -1可以取到mylist中的所有值;D选项中执行lpop/rpop <key>取完列表中所有值后,列表移除都是正确的说法。

知识点:Redis
11.
下面关于Redis 中内存统计相关指标的说法,正确的是()

A
通过 info memory可以查看内存使用情况

B
used_memory_rss代表的含义是Redis分配器分配的内存总量

C
used_memory中包含使用的虚拟内存、内存碎片等内存总量

D
mem_allocator是Redis使用的内存分配器,默认是tcmalloc

正确答案:A
官方解析:
这道题考察的是Redis 中内存统计的相关指标, 通过 info memory可以查看内存使用情况是正确的,所以选AB选项中used_memory_rss代表的含义是Redis进程占据操作系统的内存;C选项中used_memory中不包含内存碎片;D选项中mem_allocator是Redis使用的内存分配器,默认是jemalloc。

知识点:Redis
12.
下面关于Redis中set数据类型的操作指令,正确的是()

A
执行smembers <key> 命令可以获取该集合的元素个数

B
执行spop <key> 将从集合中吐出第一个值

C
sismember <key> <value>用于判断成员元素是否是集合的成员

D
sunion <key1> <key2> 返回两个集合的交集元素

正确答案:C
你的答案:D
官方解析:
这道题考察的是Redis中set数据类型的操作指令,sismember <key> <value>用于判断成员元素是否是集合的成员,所以是选CA选项中执行smembers <key> 命令可以取出该集合的所有值,B选项中执行spop <key> 将从集合中随机吐出一个值,D选项中sunion <key1> <key2> 返回两个集合的并集元素。

知识点:Redis
13.
下面关于Redis支持的string数据类型,错误的说法是()

A
string的Value最多可以容纳的数据长度是128M

B
string是二进制安全的

C
string中setnx命令只有在key不存在时才能设置值

D
string中incr命令可以对不存在的key操作

正确答案:A
官方解析:
这道题考察的是Redis中的string数据类型,string的Value最多可以容纳的数据长度是512M,所以是选AB选项中string是二进制安全的;C选项中string中setnx命令只有在key不存在时才能设置值;D选项中string中incr命令可以对不存在的key操作都是正确的说法

知识点:Redis
14.
下面关于Redis 中主从复制机制的实现原理,正确的说法是()

A
从节点服务器中的masterhost和masterport字段,分别存储主节点的ip和port信息

B
从节点需要向主节点进行身份验证

C
数据同步的执行方式是从节点向主节点发送psync命令开始同步

D
在命令传播阶段,主节点将执行的写命令发送给从节点,从节点接收命令并执行,主节点等待从节点的回复,以确保主从节点之间实时的一致性

正确答案:A
官方解析:
这道题考察的是Redis中主从复制机制的实现原理,从节点服务器中的masterhost和masterport字段,分别存储主节点的ip和port信息是正确的说法,所以选AB选项中如果从节点中设置了masterauth选项,则从节点需要向主节点进行身份验证;没有设置该选项,则不需要验证;C选项中Redis2.8版本以前是从节点向主节点发送sync命令开始同步,之后是从节点向主节点发送psync命令开始同步;D选项中主节点发送写命令后并不会等待从节点的回复,命令传播是异步的过程。

知识点:Redis
15.
下面不属于Redis 中主从复制机制缺陷的是()

A
无法实现数据冗余

B
故障恢复无法自动化

C
写操作无法负载均衡

D
存储能力受到单机的限制

正确答案:A
官方解析:
这道题考察的是Redis 中主从复制机制的缺陷,主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式,所以选AB选项中故障恢复无法自动化;C选项中写操作无法负载均衡;D选项中存储能力受到单机的限制都属于主从复制机制的缺陷。

知识点:Redis
16.
下面不属于Redis 中集群作用的是()

A
实现数据的自动备份

B
实现故障的自动转移

C
提高响应能力

D
突破了单机内存大小限制

正确答案:A
官方解析:
这道题考察的是Redis中集群作用,实现数据的自动备份不是集群的作用,所以选AB选项中实现故障的自动转移;C选项中提高响应能力;D选项中突破了单机内存大小限制都是集群的作用。

知识点:Redis

17.
下面关于Redis中事务的说法,正确的是()

A
Redis在执行阶段某个命令报出了错误,则执行时整个队列都会被取消

B
Redis在组队阶段某个命令报出了错误,则只有报错的命令不执行,其他命令顺利执行

C
Redis的事务保证了一致性和隔离性,但并不保证原子性和持久性

D
Redis在事务执行失败时,会回滚到之前某一时刻

正确答案:C
官方解析:
这道题考察的是Redis中事务,Redis的事务保证了一致性和隔离性,但并不保证原子性和持久性是正确的说法,所以选CA选项中Redis在执行阶段某个命令报出了错误,则只有报错的命令不执行,其他命令顺利执行;B选项中Redis在组队阶段某个命令报出了错误,则执行时整个队列都会被取消;D选项中Redis不支持回滚。

知识点:Redis
18.
下面关于非关系型数据库RedisMongodb的比较,正确的说法是()

A
MongoDB将数据存放在内存,当内存不够时,只将热点数据放入内存,其他数据存在磁盘;Redis将数据全部存在内存, 当内存不够时,可以选择指定的LRU算法删除数据

B
MongodbRedis都支持事务

C
Redis内置数据分析功能, Mongodb不支持

D
Mongodb支持的查询语言丰富,Redis支持的数据类型丰富

正确答案:A
官方解析:
这道题考察的是两种非关系型数据库RedisMongodb的比较,A说法正确,所以选AB选项中 Mongodb不支持事务,Redis支持事务;C选项中Mongodb内置数据分析功能, Redis不支持;D选项中Redis支持的查询语言丰富,Mongodb支持的数据类型丰富。

知识点:Redis
19.
下面关于RedisRDB文件的说法,正确的是()

A
RDB文件格式中的check_sum字段数值用来在载入时判断文件是否损坏。

B
RDB文件格式中的db_version字段记录了Redis的版本号

C
RDB文件的存储路径只可以在启动前配置

D
RDB文件格式中的SELECTDB常量pairs在任何情况下都会存在

正确答案:A
官方解析:
这道题考察的是Redis 中的RDB文件,RDB文件格式中的 check_sum字段数值用来在载入时判断文件是否损坏是正确说法,所以选AB选项中RDB文件格式中的db_version字段记录了RDB文件的版本号;C选项中DB文件的存储路径既可以在启动前配置,也可以通过命令动态设定;D选项中只有当数据库中有键值对时,RDB文件中才会有该数据库的信息。

知识点:Redis
20.
下面关于Redis中geospatial数据类型的操作指令,错误的说法是()

A
geopos用于获取当前定位

B
georadiusmember用于找出位于指定元素范围内的其他元素

C
georadius用于找出指定元素半径范围内的其他元素

D
geohash用于返回一个或多个位置元素的geohash表示

正确答案:C
官方解析:
这道题考察的是Redis中geospatial数据类型的操作指令,georadius用于以给定的经纬度为中心,找出某一半径内的元素,所以是选CA选项中geopos用于获取当前定位;B选项中georadiusmember用于找出位于指定元素范围内的其他元素;D选项中geohash用于返回一个或多个位置元素的geohash表示都是正确的说法。

知识点:Redis
21.
下面关于Redis 中内存划分的说法,错误的是()

A
Redis在存储对象时会将对象进行包装后再存入内存

B
Redis创建的子进程在运行中会占用内存,会统计在used_memory中

C
缓冲内存由内存分配器分配,会统计在used_memory中

D
可以通过安全重启的方式减小内存碎片

正确答案:B
官方解析:
这道题考察的是Redis 中内存划分的概念, Redis创建的子进程不属于Redis进程,也不会统计在used_memory中所以选BA选项中Redis在存储对象时会将对象进行包装后再存入内存;C选项中缓冲内存由内存分配器分配,会统计在used_memory中;D选项中可以通过安全重启的方式减小内存碎片都是正确的说法。

知识点:Redis
22.
下面关于Redis集群中的消息类型,错误的说法是()

A
新节点收到MEET消息后会回复一个PONG消息

B
接收者收到PING消息后会回复一个PONG消息

C
故障恢复后新的主节点会广播PONG消息

D
节点收到PUBLISH命令后,会先向集群广播这一消息,然后执行该命令

正确答案:D
官方解析:
这道题考察的是集群中的消息类型,节点收到PUBLISH命令后,会先执行该命令,然后向集群广播这一消息,所以选DA选项、B选项、C选项都是正确说法。

知识点:Redis
23.
下面关于Redis哨兵节点支持的命令,正确的说法是()

A
info sentinel用于获取监控的所有主节点的详细信息

B
sentinel master mymaster用于获取监控的主节点mymaster的详细信息

C
sentinel sentinels mymaster用于获取监控的主节点mymaster的从节点的详细信息

D
sentinel failover mymaster用于取消当前哨兵节点对主节点mymaster的监控

正确答案:B
官方解析:
这道题考察的是Redis中哨兵节点支持的命令,sentinel master mymaster用于获取监控的主节点mymaster的详细信息是正确的说法,所以选BA选项中info sentinel用于获取监控的所有主节点的基本信息;C选项中sentinel sentinels mymaster用于获取监控的主节点mymaster的哨兵节点的详细信息;D选项中sentinel failover mymaster用于强制对mymaster执行故障转移。


知识点:Redis
24.
下面关于Redis中hash数据类型的操作指令,错误的是()

A
hkeys <key>命令用于获取该hash集合中所有的key

B
hvals <key>命令用于获取该hash集合中所有的value

C
hincrby <key> <field> <increment>命令用于为指定key对应的field增加指定值

D
hsetnx <key> <field> <value>命令用于在field不存在时将其值设置为value

正确答案:A
官方解析:
这道题考察的是Redis中hash数据类型的操作指令,hkeys <key>命令用于获取hash集合中所有的field,所以是选AB选项中hvals <key>命令用于获取该hash集合中所有value、C选项中hincrby <key> <field> <increment>命令用于为指定key对应的field增加指定值、D选项中hsetnx <key> <field> <value>命令用于在field不存在时将其值设置为value都是正确的说法。

知识点:Redis

你可能感兴趣的:(专项练习,中间件)