windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效,

Windows Redis requirepass不生效

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月11日

http://www.cnblogs.com/fanshuyao/

一、Redis下载地址:

https://github.com/MicrosoftArchive/redis/releases

1、Redis-x64-3.2.100.msi 为安装版

2、Redis-x64-3.2.100.zip 为压缩包

二、由于我使用的是安装版,本次问题也是安装版的问题

1、安装后的目录

2、安装版的Redis安装后服务会自动启动。

三、问题所在:

由于安装版的Redis服务自启动,是直接通过redis-server.exe启动的,但是,启动时并没有加载Redis的配置文件(redis.windows.conf),导致redis 中bind配置和密码设置不生效。这导致我折腾了很久,后来才意识到这个问题。

四、Redis自启动导致的常见的问题有:

1、在CMD命令加载配置文件(redis.windows.conf)进行启动是不成功的。提示如下:

  1. D:\soft\Redis>redis-server.exe redis.windows.conf
  2. [13760] 11 Jul 16:39:51.067 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

因为Redis服务已经自启动,这里是不会再新启动的,故加载配置文件是失败的。也没有出现Redis启动的小盒子(下面有图片,慢慢往下看)

2、密码失效

虽然在配置文件(redis.windows.conf)设置了密码,密码为123456:

  1. ################################## SECURITY ###################################
  2. ……省略……
  3. # requirepass foobared
  4. requirepass 123456

但启动客户端进行Redis命令操作时,是不需要密码的,也没有提示无权限操作,这是一个严重的安全问题。

  1. D:\soft\Redis>redis-cli.exe
  2. 127.0.0.1:6379> get name
  3. "haha"
  4. 127.0.0.1:6379>

3、Redis访问IP绑定(bind)无效

Redis默认绑定的ip为127.0.0.1,但如果想内网的机器都能访问,则需要设置内网的ip地址,如192.168.100.66,然后redis.host则可以设置为192.168.100.66访问Redis。

Redis ip地址绑定默认说明:

  1. ################################## NETWORK #####################################
  2. # By default, if no "bind" configuration directive is specified, Redis listens
  3. # for connections from all the network interfaces available on the server.
  4. # It is possible to listen to just one or multiple selected interfaces using
  5. # the "bind" configuration directive, followed by one or more IP addresses.
  6. #
  7. # Examples:
  8. #
  9. # bind 192.168.1.100 10.0.0.1
  10. # bind 127.0.0.1 ::1
  11. #
  12. # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
  13. # internet, binding to all the interfaces is dangerous and will expose the
  14. # instance to everybody on the internet. So by default we uncomment the
  15. # following bind directive, that will force Redis to listen only into
  16. # the IPv4 lookback interface address (this means Redis will be able to
  17. # accept connections only from clients running into the same computer it
  18. # is running).
  19. #
  20. # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
  21. # JUST COMMENT THE FOLLOWING LINE.
  22. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  23. bind 127.0.0.1

主要是意思是,如果设置了bind,只能通过绑定的地址访问Redis。

如果不设置bind,则所有地址都可以访问,如果在项目部署外网,所有人都可以访问到,所以这里也是个注意的地址,还是设置bind比较安全。

绑定多个ip地址:

  1. bind 127.0.0.1 192.168.100.66

127.0.0.1和192.168.100.66之间通过空格分隔,不是逗号。

但如果Redis是自启动的,没有加载配置文件(redis.windows.conf)启动,这里的设置也是无效的。

如果不绑定ip地址(192.168.100.66),直接设置redis.host=192.168.100.66是访问不了的,出现以下的错误:

  1. redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

所以说,Redis由Windows自启动的,配置文件的设置都是无效的

五、解决方案:

1、禁用Redis的自启动,设置为手动

2、不要使用Redis安装版,使用压缩版

3、通过命令行CMD加载配置文件(redis.windows.conf)启动

  1. D:\soft\Redis>redis-server.exe redis.windows.conf

通过Cmd启动的界面都是不一样的,如下:

看到了正常启动的盒子。

4、再新打开一个cmd(不要关闭之前打的Cmd窗口),启动Redis客户端:

  1. D:\soft\Redis>redis-cli.exe

5、获取Redis中某个key的值,提示无权限。

  1. 127.0.0.1:6379> get name
  2. (error) NOAUTH Authentication required.
  3. 127.0.0.1:6379>

这样才是对的。

6、通过密码进入访问,使用 auth + 密码,如下:

  1. 127.0.0.1:6379> get name
  2. (error) NOAUTH Authentication required.
  3. 127.0.0.1:6379> auth 123456
  4. OK
  5. 127.0.0.1:6379> get name
  6. "haha"
  7. 127.0.0.1:6379>

如果Redis设置了密码,Spring整合Redis也是需要设置密码的,具体的一些配置:

7、Spring整合Redis的一些配置(JedisPool单机版):

Spring.xml文件配置的JedisPool池:

  1. <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
  2. <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
  3. <constructor-arg name="host" value="${redis.host}" />
  4. <constructor-arg name="port" value="${redis.port}" type="int" />
  5. <constructor-arg name="timeout" value="${redis.timeout}" type="int" />
  6. <constructor-arg name="password" value="#{'${redis.password}'!=''?'${redis.password}':null}" />
  7. <!-- <constructor-arg name="database" value="${redis.db.index}" type="int" /> -->
  8. </bean>

redis.properties配置文件

  1. #*****************jedis连接参数设置*********************#
  2. #redis服务器ip#
  3. redis.host=192.168.100.66
  4. #redis服务器端口号#
  5. redis.port=6379
  6. #超时时间:单位ms#
  7. redis.timeout=3000
  8. #授权密码,没有密码则不设置,但属性要保留#
  9. redis.password=123456

六、如果不是安装版的Redis,又想让Redis自启动的时候,可以向Windows添加自启动服务:

1、进入到Redis的安装目录

  1. D:\soft\Redis>

2、执行命令:

  1. redis-server --service-install redis.windows.conf --loglevel notice --service-name Redis

3、完整示例:

  1. D:\soft\Redis>redis-server --service-install redis.windows.conf --loglevel notice --service-name Redis

--service-install redis.windows.conf  指定redis配置文件

--loglevel notice 指定日志级别

--service-name Redis 指定服务名称

运行结果如下( Redis successfully installed as a service.):

  1. D:\soft\Redis>redis-server --service-install redis.windows.conf --loglevel notice --service-name Redis
  2. [7176] 12 Jul 09:34:50.730 # Granting read/write access to 'NT AUTHORITY\NetworkService' on: "D:\soft\Redis" "D:\soft\Redis\"
  3. [7176] 12 Jul 09:34:50.730 # Redis successfully installed as a service.

4、安装服务后,默认不是马上启动的,但启动类型是自启动,如果想马上启动,请执行命令:

  1. redis-server --service-start
  1. 服务成功启动显示如下:
  2. [9876] 12 Jul 09:57:41.251 # Redis service successfully started.

或者重启电脑。

停止服务:

  1. redis-server --service-stop

5、删除Redis服务:

  1. redis-server --service-uninstall

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月11日

http://www.cnblogs.com/fanshuyao/

windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效, Windows Redis requirepass不生效的更多相关文章

  1. windows下远程访问Redis,windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效,Windows Redis requirepass不生效,windows下远程访问redis的配置

    转载:http://fanshuyao.iteye.com/blog/2384074 一.Redis下载地址: https://github.com/MicrosoftArchive/redis/re ...

  2. redis绑定ip以及启动和查看启动状态

    改绑定ip: 或许是对redis的了解还不够多的缘故,单单只是从安装和启动来讲,个人觉得好像是比mongodb和mysql要简单一些. 我的安装包是这个:http://download.csdn.ne ...

  3. 阿里云服务器redis启动绑定ip 开放端口仍无法访问问题

    今天使用云服务器其redis 始终无法访问.redis.conf 这个配置文件也是改了又改.最后发现 执行redis启动命令时没有带上配置文件.仍然使用默认配置. src/redis-server  ...

  4. Redis绑定多个ip地址

    Redis绑定多个ip地址 学习了:https://www.zhihu.com/question/20346112/answer/17157379 注意,用空格进行分隔 bind 127.0.0.1 ...

  5. Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】

    No cross,no crown . 不经历风雨,怎么见彩虹. Redis哨兵模式,用现在流行的话可以说就是一个"哨兵机器人",给"哨兵机器人"进行相应的配置 ...

  6. Redis集群主从复制(一主两从)搭建配置教程【Windows环境】

    如何学会在合适的场景使用合适的技术方案,这值得思考. 由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基 ...

  7. Windows 配置Reids集群 Redis Cluster

    一 .所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 .安装配置redis  redis下载地 ...

  8. Flask开发系列之Flask+redis实现IP代理池

    Flask开发系列之Flask+redis实现IP代理池 代理池的要求 多站抓取,异步检测:多站抓取:指的是我们需要从各大免费的ip代理网站,把他们公开的一些免费代理抓取下来:一步检测指的是:把这些代 ...

  9. 2、Redis如何配置成一个windows服务并且设置一键安装卸载与启停

    每天启动redis虽然只是一个命令行的事情,但是还是比较烦,所以…… 参考文档:Windows Service Documentation.docx 默认前提:Redis已安装并配置完成(不知道如何配 ...

随机推荐

  1. 引入css少引入了rel="stylesheet" 这行代码。导致整个页面空白、

    忘记引入rel="stylesheet" 如下: <link  href="css/swiper-3.3.1.min.css" /> 这样使得整个页 ...

  2. 利用memcpy函数实现float到QByteArray的相互转化

    一.为什么要实现float到QByteArry之间的相互转化 在总线通讯过程中(例如串口通讯),总线上传输的是字节数组变量,即ByteArray型的变量,在Qt中即为QbyteArray型变量.总线发 ...

  3. Error:(1, 0) Plugin with id 'com.android.application' not found

    Error:(1, 0) Plugin with id 'com.Android.application' not found.Open File 这个错误是build.gradle造成的,我们打开文 ...

  4. python进行数据分析------相关分析

    相关分析 import statsmodels.api as sm import pandas as pd import numpy as np from patsy.highlevel import ...

  5. 转载:案例用Excel对会员客户交易数据进行RFM分析

    案例:用Excel对会员客户交易数据进行RFM分析                                背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...

  6. substitute 命令与 global 命令

    他们是很强大的EX命令: substitute的格式: :[range]s[ubstitute]/{pattern}/{string}/{flags} 其中的patttern 指的是正则表达式的匹配: ...

  7. 关于对最新HTML总结PPT讲稿的分享

    如果大家还记得HTML,那么2009年的时候可能当时还是HTML1.0时代,而国际化的标准才刚刚开始,对于TABLE表格的使用,还有就是一些常用的标签都是及为简单的,因为当时的代码都是接近于短码,所以 ...

  8. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.【转】

    今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" ...

  9. (转)Android分布式编译学习(一)distcc实现分布式编译 —— Ubuntu12.04上部署distcc分布式编译

    转自:http://blog.csdn.net/eqiang8271/article/details/17144411   版权声明:本文为博主原创文章,未经博主允许不得转载. Android代码庞大 ...

  10. 让不支持MVC3的服务器/空间/虚拟主机 支持MVC3 (前提是必须支持 .net 4.0才可以)

    在有的时候,你用的VPS,服务器或者是虚拟空间可能是没有安装MVC3的,下面我们就自己来手动来让虚拟空间支持(前提是空间必须是.net 4.0的,因为MVC3是在4.0下运行) 我们先在web.con ...