面试题答案
一键面试基本原理
- 命名空间隔离:Redis 数据库基于键空间进行数据存储,每个数据库(默认 16 个,编号 0 - 15)有独立的键空间。通过
SELECT
命令切换数据库,实现不同业务数据的隔离存储,避免键名冲突。例如,一个应用的用户数据存于 0 号库,订单数据存于 1 号库。 - 键操作类型:对键空间的操作分为读操作(如
GET
、HGET
等)和写操作(如SET
、HSET
等)。Redis 根据操作类型对键空间中的数据进行相应处理。
保障数据访问安全方式
- 用户认证:通过
CONFIG SET requirepass <password>
配置密码,客户端连接时需使用AUTH <password>
命令认证,认证成功才能访问键空间,防止未授权访问。 - 命令限制:可通过
rename-command
指令对敏感命令(如FLUSHALL
、DEL
等可能导致数据丢失或被篡改的命令)进行重命名或禁用,避免误操作或恶意操作,保障数据安全。比如将FLUSHALL
重命名为复杂难记的名称,降低风险。 - 网络隔离:将 Redis 部署在内网,通过防火墙限制外网对 Redis 端口(默认 6379)的访问,只有授权的内部服务能访问键空间,减少外部攻击风险。