Windows Redis Memurai 配置指南、用户创建、权限管理目录 一、Memurai IP 访问限制配置 1
发布时间:2026-10-15 | 浏览:1
关于 Memurai :Memurai 是 Windows 平台上的 Redis 兼容实现,提供与 Redis 相同的命令和功能。配置文件为 memurai.conf ,服务名为 Memurai 。可以使用 memurai-cli 或 redis-cli 连接 Memurai。
一、Memurai IP 访问限制配置 1.5 用户访问控制(ACL 用户管理)
1.5 用户访问控制(ACL 用户管理)
一、Memurai IP 访问限制配置
Memurai 的 IP 访问控制通过 bind 和 protected-mode 配置项实现:
bind :指定 Memurai 监听哪个 IP 地址
protected-mode :保护模式,当未设置密码且只允许本地访问时启用
不限制 IP = 允许远程访问 = 配置 bind 0.0.0.0 并设置密码
1.2 允许远程访问(不限制 IP)
步骤 1:找到 Memurai 配置文件
查看 Memurai 服务配置
使用 memurai-cli CONFIG GET dir 查看配置目录
检查服务启动参数: sc qc Memurai
打开 Memurai 配置文件( memurai.conf ),找到并修改以下配置项:
步骤 3:重启 Memurai 服务
Win + R → services.msc → 找到 Memurai 服务 → 重启
1.3 限制 IP 访问(仅允许特定 IP)
方法一:仅允许本地访问(最安全)
注意 :Redis 的 bind 不支持 CIDR 网段格式,如需限制网段,建议使用防火墙规则。
示例 1:开发环境(允许远程访问)
示例 2:生产环境(限制访问)
1.5 用户访问控制(ACL 用户管理)
Memurai(兼容 Redis 6.0+)支持 ACL(Access Control List)用户管理系统,可以创建多个用户并设置不同的权限。
1.5.1 ACL 用户管理概述
可以限制用户访问的键(key)模式
支持只读用户、只写用户等不同角色
ACL vs requirepass:
requirepass :单一密码,所有连接使用同一个密码
ACL :多用户系统,每个用户有独立的密码和权限
1.5.2 启用 ACL 功能
方法一:在配置文件中启用(推荐)
在 memurai.conf 中添加:
>password :设置用户密码
~pattern :允许访问的键模式( ~* 表示所有键)
&pattern :允许访问的发布/订阅频道模式( &* 表示所有频道)
+@category :允许的命令类别
-@category :禁止的命令类别
+command :允许特定命令
-command :禁止特定命令
案例 1:创建管理员用户(所有权限)
案例 2:创建应用用户(读写权限,禁止危险命令)
案例 4:创建受限用户(仅访问特定键前缀)
案例 5:创建缓存用户(仅字符串操作)
1.5.8 在配置文件中定义用户
在 memurai.conf 中可以直接定义用户:
加载配置文件后,用户会自动创建。
在配置文件中指定 ACL 文件:
保存当前 ACL 配置到文件:
1.5.11 与传统 requirepass 的对比
开发/测试环境 :可以使用 requirepass (简单)
生产环境 :推荐使用 ACL 用户系统(更安全、更灵活)
2.1 查找 Memurai 配置文件位置
方法 1:查看 Memurai 服务配置
Win + R → services.msc
右键 → 属性 → 查看"可执行文件的路径"
方法 2:使用 Memurai CLI 查询
memurai.conf (Memurai 主配置文件)
根据上述方法找到配置文件位置。
步骤 2:备份原配置文件(重要)
使用文本编辑器(如 Notepad++、VS Code)打开 memurai.conf 文件。
注意 :确保使用 UTF-8 编码保存。
步骤 4:重启 Memurai 服务
Memurai 启动时按以下顺序查找配置文件:
命令行参数 --config-file 指定的文件
默认配置文件(安装目录下的 memurai.conf )
作用 :指定 Redis 监听哪个 IP 地址
作用 :指定 Redis 监听端口
作用 :保护模式,当未设置密码且只允许本地访问时启用
yes :启用保护模式(默认)
当 protected-mode yes 且未设置密码时,只允许本地连接
当设置了密码或 bind 0.0.0.0 时,建议 protected-mode no
作用 :客户端空闲超时时间(秒)
作用 :TCP 保活时间(秒)
作用 :设置 Redis 访问密码
密码不要包含特殊字符(如 # 、空格),可能导致解析错误
建议使用字母、数字、下划线组合
作用 :重命名危险命令,提高安全性
4.1 方法一:使用 Memurai CLI 查看配置(最常用)
在另一台机器或本机模拟远程连接:
Connection refused :bind 配置错误或防火墙阻止
NOAUTH Authentication required :需要密码认证
(error) ERR invalid password :密码错误
4.3 方法三:查看 Memurai 日志
4.4 方法四:使用 netstat 查看监听端口
bind 决定 Memurai 服务监听哪个本地 IP 地址 。
bind :控制 Memurai 监听哪 (服务层)
防火墙:控制 谁能连 (网络层)
密码:控制 谁能用 (应用层)
5.2 protected-mode 详解
protected-mode 是 Memurai(兼容 Redis 3.2+)的安全特性。
当 protected-mode yes 时: 如果未设置密码,只允许本地连接( 127.0.0.1 ) 如果设置了密码,允许远程连接
如果未设置密码,只允许本地连接( 127.0.0.1 )
当 protected-mode no 时: 允许所有连接(需要配合密码使用)
允许所有连接(需要配合密码使用)
重要 :生产环境 必须 设置密码,即使 protected-mode no 。
5.3 requirepass 详解
注意 :取消密码后,如果 protected-mode yes ,将只允许本地连接。
Memurai 配置的优先级(从高到低):
运行时配置 : CONFIG SET 命令
命令行参数 : memurai-server --bind 0.0.0.0
配置文件 : memurai.conf 中的配置
默认值 :Memurai 内置默认值
✅ 1. bind 配置为 0.0.0.0 或包含目标 IP
✅ 2. protected-mode 配置正确
✅ 4. Windows 防火墙放行 6379 端口
✅ 5. Memurai 服务正在运行
在另一台机器或本机模拟远程连接:
6.3 开发环境 vs 生产环境
包含大小写字母、数字、特殊字符
即使 bind 0.0.0.0 ,也可以通过防火墙限制访问:
4. 启用 TLS/SSL(Redis 6.0+)
使用 ACL 用户系统(推荐)
✅ 使用 ACL 替代单一 requirepass
管理员用户 : +@all (仅用于管理)
应用用户 : +@all -@dangerous (读写权限,禁止危险命令)
只读用户 : +@read +@keyspace (仅查询)
受限用户 :限制键访问模式(如 ~api:* )
已设置强密码或启用 ACL 用户系统
bind 配置合理(生产环境不推荐 0.0.0.0 )
protected-mode 已启用(生产环境)
已创建 ACL 用户并设置最小权限(推荐)
已启用持久化(AOF 或 RDB)
定期更新 Memurai 版本
8.1 Memurai 配置文件查找顺序
Memurai 启动时按以下顺序查找配置文件:
命令行参数 : memurai-server --config-file /path/to/memurai.conf
服务配置 :Windows 服务中指定的配置文件路径
默认位置 :安装目录下的 memurai.conf
8.2 Windows 下 Memurai 安装方式
方式 1:Memurai 官方安装
下载地址: www.memurai.com/
配置文件: memurai.conf
特点:Windows 原生 Redis 兼容实现,性能优化
方式 2:查看 Memurai 安装位置
Q1: 为什么修改了配置文件但配置不生效?
A: 最常见原因是忘记重启 Memurai 服务。修改配置文件后必须重启服务:
Q2: bind 0.0.0.0 后仍然无法远程连接?
protected-mode 是否为 no 或已设置密码
Windows 防火墙是否放行 6379 端口
Memurai 服务是否已重启
Q3: protected-mode 的作用是什么?
A: protected-mode 是 Memurai(兼容 Redis)的安全机制:
yes :未设置密码时只允许本地连接
no :允许远程连接(建议配合密码使用)
Q4: 如何查看 Memurai 当前配置?
Q5: 如何在不重启的情况下修改配置?
A: 使用 CONFIG SET 命令:
注意 :这种方式修改的是运行时配置,重启后会恢复配置文件中的值。要永久生效,需要修改配置文件并执行 CONFIG REWRITE 。
Q6: Memurai 密码包含特殊字符怎么办?
A: 避免在密码中使用以下字符:
如果必须使用,可以在配置文件中用引号包裹:
Q7: 如何限制 Memurai 只能特定 IP 访问?
bind 配置 (推荐): bind 127.0.0.1 192.168.1.100
防火墙规则 : netsh advfirewall firewall add rule name= "Memurai" dir = in action=allow protocol=TCP localport=6379 remoteip=192.168.1.100
Q8: Memurai 默认端口可以修改吗?
A: 可以,修改配置文件 memurai.conf 中的 port 项:
然后重启服务,连接时指定新端口:
Q9: 如何创建多个用户并设置不同权限?
A: 使用 ACL 用户系统(Memurai 兼容 Redis 6.0+):
Q10: requirepass 和 ACL 用户系统有什么区别?
requirepass :单一密码,所有连接使用同一个密码,所有用户权限相同
ACL 用户系统 :多用户系统,每个用户有独立的密码和权限,更灵活、更安全
开发/测试环境:可以使用 requirepass (简单)
生产环境:推荐使用 ACL 用户系统(更安全、更灵活)
允许远程访问(不限制 IP):
bind = 0.0.0.0 或包含目标 IP ✅
protected-mode = no 或已设置密码 ✅
密码正确或 ACL 用户已配置 ✅
已创建 ACL 用户(推荐)或已设置 requirepass ✅
已禁用危险命令或限制用户权限 ✅
本文档基于 Windows Memurai 实际配置经验整理,Memurai 是 Redis 兼容的 Windows 原生实现。