一台机器上安装多个 Redis 实例

Redis 的多个「数据库」间并未隔离,也没有良好的权限控制,拿到任何一个连接 Redis 的服务的权限就可以直接控制所有数据,这无疑是不安全的。

Redis 想要真正做到多数据库间隔离只有运行多个 Redis 实例,将其启动在不同的端口、设定不同的配置文件和数据目录,因为 Redis 本身对于资源的消耗并不大因此启动多个实例并不比在一个实例中创建多个数据库造成更大开销。

利用 Docker

最简单的方式自然是利用 Docker(或者 docker-compose / k8s 等容器编排技术),这种情况只要指定不同的数据卷位置和映射端口即可,没有任何难度,因此不说了

创建多个配置文件、指定多个数据目录

如果 Redis 是基于源码安装的,那么源码下有着 utils/install_server.sh 文件可以很方便的配置端口、配置文件、数据存放目录、日志目录,并且在系统中自动注册服务。

如果不是基于源码安装的,那么只能自己写 Redis 的配置文件,复制出多份系统的 Service 和相应配置文件并修改相应参数。