目录
17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
29、Redis key 的过期时间和永久有效分别怎么设置?
34、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素?
35、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
37、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
38、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?
41、Pipeline 有什么好处,为什么要用 pipeline?
16、Redis 集群方案什么情况下会导致整个集群不可用?
有
A
,
B
,
C
三个节点的集群
,
在没有复制模型的情况下
,
如果节点
B
失败了,那么整个集群就会以为缺少 5501-11000
这个范围的槽而不可用。
17、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
Redisson
、
Jedis
、
lettuce
等等,官方推荐使用
Redisson
。
18、Jedis 与 Redisson 对比有什么优缺点?
Jedis
是
Redis
的
Java
实现的客户端,其
API
提供了比较全面的
Redis
命令的支持;Redisson
实现了分布式和可扩展的
Java
数据结构,和
Jedis
相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等 Redis
特性。Redisson 的宗旨是促进使用者对
Redis
的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。
19、Redis 如何设置密码及验证密码?
设置密码:
config set requirepass 123456
授权密码:
auth 123456
20、说说 Redis 哈希槽的概念?
Redis
集群没有使用一致性
hash,
而是引入了哈希槽的概念,
Redis
集群有16384 个哈希槽,每个
key
通过
CRC16
校验后对
16384
取模来决定放置哪个槽,集群的每个节点负责一部分 hash
槽。
21、Redis 集群的主从复制模型是怎样的?
为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所以集群使用了主从复制模型,
每个节点都会有
N-1
个复制品。
22、Redis 集群会有写操作丢失吗?为什么?
Redis
并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。
23、Redis 集群之间是如何复制的?
异步复制
24、Redis 集群最大节点个数是多少?
16384
个。
25、Redis 集群如何选择数据库?
Redis
集群目前无法做数据库选择,默认在
0
数据库。
26、怎么测试 Redis 的连通性?
使用
ping
命令。
27、怎么理解 Redis 事务?
1)事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
2
)事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
28、Redis 事务相关的命令有哪几个?
MULTI
、
EXEC
、
DISCARD
、
WATCH