redis不写入
要确认 Redis 是否有写入权限,以及 Redis 是否在 read-only
模式,可以按照以下步骤查看和更改配置:
1. 检查 Redis 配置文件 (redis.conf
)
- 找到 Redis 的配置文件
redis.conf
, - 通常在
/etc/redis/redis.conf
或/usr/local/etc/redis/redis.conf
。 - 确保没有
read-only
配置。如果有类似以下内容:conf
slave-read-only yes
yes
改为no
并重新启动 Redis 服务,或者将其删除以确保没有read-only
限制。
2. 查看 Redis 运行时配置
-
使用
redis-cli
命令连接到 Redis 并查看配置。bash
redis-cli -h <host> -p <port> -a <password>
-
在提示符下输入以下命令,查看
slave-read-only
或只读相关配置:bash
CONFIG GET slave-read-only
输出示例:
1) "slave-read-only"
2) "yes"
如果是
yes
,表示当前实例是只读的。
3. 更改 Redis 运行时配置
-
可以临时更改 Redis 运行时配置以关闭只读模式:
bash
CONFIG SET slave-read-only no
-
注意:这种方式只会在当前 Redis 实例运行期间有效,重启后会恢复到
redis.conf
文件中的设置。
4. 检查 Redis 主从配置
- 如果你的 Redis 实例是从节点(slave),默认会是只读的。需要在主节点执行写入操作,或者重新配置从节点为主节点(去掉
replicaof
设置)。
5. 检查用户权限 (Redis 6.0+)
-
Redis 6.0 及以上版本支持用户权限管理。你可以检查当前用户是否有写入权限。
-
在
redis-cli
中使用以下命令查看当前用户权限:bash
ACL LIST
确保当前用户配置中有
+write
权限。如果没有,需要更新用户权限。bash
ACL SETUSER <username> on ><password> ~* +@all
这条命令为用户设置全面的权限。请根据需要更改用户和权限。
6. 重启 Redis 服务
如果更改了 redis.conf
,需要重启 Redis 使更改生效:
sudo systemctl restart redis
或者使用:
sudo service redis-server restart
总结
- 确保
redis.conf
文件中没有read-only
配置。 - 检查并更新 Redis 运行时配置和用户权限。
- 重启 Redis 服务以使永久更改生效。
端口
linux允许redis默认端口
ufw allow xxx