阿里的 Redis 连环炮面试题,看的资料一个也没用上

JAVA herman 765浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

Redis 这类开源的 Key-Value 数据库被越来越多的公司所采用,于是乎,Redis 已经是成了面试必问的技术了。

昨天,我在外买菜期间,有网友私信我,说上周面试阿里,面了 Redis 的知识,命令之类的一个也没问,只问了 Redis 的密码配置和 Jedis 对配置文件的加解密处理。他当场懵圈了,面试之前看了很多 Redis 的知识,一个也没问到。

Redis 连环炮面试题

今天,我们就一起来说说,Redis 的密码认证配置和 Jedis 的对配置的加密密码的处理!

公司越大,安全性要求越高。为了不让你的数据裸奔,所以,安全认证很有必要。Redis 的密码配置有两种方案。

1、直接在 redis.conf 中配置。

Redis 配置密码

比如,我的 redis.conf 在 /usr/local/etc/redis.conf 位置,那么我就编辑这个配置文件。

找到 #requirepass foobared 这一行,去掉前面的 # 号。设置密码为:xttblog。

requirepass xttblog

保存文件,然后重启 Redis。

brew services restart redis

除了,这一种配置密码的方法,还有一种通过命令的形式修改密码。

2、通过 config set requirepass 命令,配置修改密码。

redis-cli -h 127.0.0.1 -p 6379 -a xttblog

连接上了之后,配置或修改新密码。

config set requirepass xttblog_new_password

然后,无需重启,之后的新链接都必须通过新密码才能才能完成认证。

但是这种方式有一个问题,那就是,当服务重启之后,新密码就失效了,认证密码又被重置成了配置文件中的密码。

需要注意的是,一旦你配置了密码。那么你连接的 Jedis,集群中的 slave 都需要配置密码,否则就无法正常使用了。

配置密码后,Jedis 的使用就非常简单了。只需要在 yml 中,配置密码认证即可。

spring:
    redis:
        host: 127.0.0.1
        port: 6379
        password: xttblog_new_password
        database: 8

但是,只这样还不行,还需要把配置文件中的内容给加密了。然后在 JedisPool 中,对要使用的密码进行解密。

@Bean
public JedisPool pool(JedisPoolConfig config, JedisProperties jedisProperties) {
    return new JedisPool(config, jedisProperties.getHost(), jedisProperties.getPort(), 5000,
            decryptPwd(jedisProperties.getPassword()), jedisProperties.getDatabase());
}
private String decryptPwd(String pwd){
    //省略解密代码
}

除此之外,大家都知道阿里面试的套路。光会这些还不行,比如,对方继续套路你,原生 Redis 通过 config get 命令可能获取到服务端敏感信息。针对这种情况,如何解决?

如何检验/校验密码设置的复杂度?如何防止 Redis 认证的暴力破解?如何限制访问的 IP 范围?登录认证时,能否记录日志?怎么记录?配置文件中的明文密码如何加密处理?

以上,希望大家对有所帮助。知道自己的不足,赶紧充电吧!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号1:xmtxtt(5000人已满),微信号2:codedq(5000人已满),微信号3:xttblog(超2800)。备注:“xttblog”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 阿里的 Redis 连环炮面试题,看的资料一个也没用上