转自:https://blog.csdn.net/cw_hello1/article/details/83444013
本地redis客户端使用 redis-cli -h host -p port -a password 连接远程服务器,爆出错误
Error: Protocol error, got "J" as reply type byte
解决问题的关键在了解redis服务器上配置文件中bind和protected-mode这两项配置的作用
bind的作用
经常会有个误区是bind用于绑定能够访问本机redis服务器的ip,但是真要配置一个其他机器的ip,就会发现启动不了redis。
bind的真实作用是,绑定本机的网卡ip,如果配置了bind,则redis服务器只接受来自绑定网卡的redis请求。如果都没配置,则接受所有网卡发来的请求
举例:如果redis服务器上有两个网卡,IP地址分别是IP1和IP2,在redis.conf里配置 bind IP1,那么远程客户端只能通过IP1访问redis服务器。如果配置了IP1和IP2以外的地址,redis服务就会启动不了
127.0.0.1是一个回环地址,所有计算机都只能访问自己的回环地址。所以只有本机能访问这个IP地址而不是只接受回环地址的访问
redis中的【protected-mode】的理解
redis本身无法限制【只有指定主机】连接到redis中,就像上面说的一样,bind指定只是用来设置接口地址(interfaces)。
1.如果你的bind设置为:bind 127.0.0.1,这是非常安全的,因为只有本台主机可以连接到redis,就算不设置密码,也是安全的,除非有人登入到你的服务器上。
2.如果你的bind设置为:bind 0.0.0.0,表示所有主机都可以连接到redis。(前提:你的服务器必须开放redis的端口)。这时设置密码,就会多一层保护,只有知道密码的才可以访问。也就是任何知道密码的主机都可以访问到你的redis。
protected-mode是redis本身的一个安全层,这个安全层的作用:就是只有【本机】可以访问redis,其他任何都不可以访问redis。这个安全层开启必须满足三个条件,不然安全层处于关闭状态:
(1)protected-mode yes(处于开启)
(2)没有bind指令。原文:The server is not binding explicitly to a set of addresses using the "bind" directive.
(3)没有设置密码。原文:No password is configured。
这时redis的保护机制就会开启。开启之后,只有本机才可以访问redis。 如果上面三个条件任何一个不满足,就不会开启保护机制。
相关推荐
这里的 "redis-stack-server-6.2.6-v7.rhel7.x86-64.tar.gz" 文件是一个针对 Red Hat Enterprise Linux 7 (RHEL7) 平台的 64 位版本的 Redis Stack 6.2.6 包。这个压缩包包含了运行 Redis Stack 所需的所有组件,...
标题中的"php_redis-2.2.7-5.6-nts-vc11-x86"和"php_redis-2.2.5-5.6-ts-vc11-x86"指的是PHP的Redis扩展的不同版本,适用于PHP 5.6。这里的"2.2.7"和"2.2.5"是Redis扩展的版本号,"5.6"对应的是PHP的版本号。"nts"和...
在“php_redis-2.2.5-5.6-ts-vc11-x64”中,"2.2.5"代表了Redis扩展的版本号,这是一个稳定且经过广泛测试的版本。"5.6"表示此扩展适用于PHP 5.6版本,这是一个较为流行且广泛应用的PHP版本。"ts"代表"Thread Safe...
1. 解压下载的 Redis 文件,找到 `redis-server.exe` 和配置文件 `redis.conf`。 2. 修改 `redis.conf`,根据需求配置 Redis 服务,例如端口、数据文件路径等。 3. 运行 `redis-server.exe redis.conf` 启动 Redis ...
"tomcat-redis-session-manager-1.2-tomcat-6.jar" 和 "tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar" 是针对Tomcat 6和Tomcat 7的Redis Session Manager实现,这两个jar文件提供了将Tomcat的session存储...
redis-server --service-install redis.windows-service.conf --loglevel verbose 2 常用的redis服务命令。 卸载服务:redis-server --service-uninstall 开启服务:redis-server --service-start 停止服务:redis-...
在Windows上安装Redis Desktop Manager 2020.7,首先需要解压"Redis-Desktop-Manager-for-Windows-2020.7.zip"文件,其中包含"rdm-2020.7.exe"可执行文件。双击运行该文件,按照安装向导完成安装。安装完成后,启动...
用于配置 tomcat-redis-session-manager
Redis-x64-3.0.504.zip和Redis-x64-3.2.100.msi是两个不同版本的Redis安装文件,分别对应Redis的3.0.504和3.2.10版本。这两个版本之间的主要区别在于功能增强、性能优化和修复了已知的问题。例如,从3.0到3.2,Redis...
redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-5.0.12.tar文件 redis-...
`php_redis-2.2.7-5.6-ts-vc11-x64.zip`文件包含了适用于PHP 5.6,线程安全(TS)版本,使用Visual C++ 11编译器,并且是为64位Windows系统编译的php_redis扩展。 其次,`php_igbinary`扩展则是用于替代默认的PHP...
1. 下载源码包:`redis-2.8.13.tar.gz` 是Redis的源码包,解压后进行编译和安装。 2. 解压:`tar -zxvf redis-2.8.13.tar.gz` 3. 编译:`cd redis-2.8.13`,然后`make` 4. 安装:`sudo make install` 5. 启动Redis...
- 使用`redis-server --service-start`和`redis-server --service-stop`命令启动和停止服务。 6. **安全性**: - Redis默认不启用密码认证,为了安全,可以在配置文件中设置`requirepass`密码。 - 通过`bind`...
redis-5.0.14/src/redis-cli --cluster create 192.168.129.98:7000 192.168.129.99:7003 192.168.129.99:7002 192.168.129.126:7005 192.168.129.126:7004 192.168.129.98:7001 --cluster-replicas
redis配置文件redis.conf
本文将围绕“php_redis-5.2.1-7.2-ts-vc15-x86.zip”这个压缩包文件,详细讲解如何在Windows环境下安装和使用PHP Redis扩展,以及其关键组件和功能。 首先,从文件名可以看出,这个压缩包是专为PHP 5.2.1到7.2版本...
在这个场景中,我们关注的是Redis的集群搭建,涉及到的文件是"redis-3.0.0.tar"和"redis-3.0.0.gem"。这两个文件分别对应Redis服务本身和通过Ruby来创建Redis集群的工具。 首先,`redis-3.0.0.tar`是一个源代码...
在 NGINX 的配置文件中,通过 `set $redis_key "your_key"` 设置键名,然后使用 `redis2_query` 指令执行 Redis 命令。例如: ``` location /cache { set $redis_key "content:$uri"; redis2_query get $redis_...
Redis 和 PHP Redis 扩展是两个在 Web 开发中至关重要的组件,特别是在构建高性能、高并发的 Web 应用程序时。...在实际应用中,需要根据具体需求选择合适的 Redis 版本和扩展,进行合理的配置和调优。
本文将详细介绍如何在Linux系统中,通过`tar`命令安装`redis-6.0.16`版本。 首先,确保你的Linux环境已经安装了`tar`工具,这是Linux中常见的文件打包解压工具。如果没有,可以通过`apt-get`(Ubuntu/Debian)或`...