NoSQL之Redis高级实用命令详解--安全和主从复制

原创 2013年12月04日 12:33:43

一、安全性

为redis设置密码:设置客户端连接后进行任何其他指定前需要实用的密码。

警告:因为redis速度非常快,所以在一台较好的服务器下,一个外部用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。

修改密码的方法:

只需要在redis的配置文件redis.conf中开启requirepass就可以了,比如我设置我的访问密码是mypassword

requirepass mypassword

在redis.conf中加入这一行代码之后,我们杀死原来的redis进程:pkill redis然后重新启动redis:/usr/local/redis-2.8.1/src/redis-server /user/local/redis-2.8.1/redis.conf

然后我们用/usr/local/redis-2.8.1/src/redis-cli发现还能登陆进来,但是当我们执行操作的时候,比如keys *就会如下错误:

127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.

没有必要的授权验证。

在这里redis支持两种授权方式,一种就是直接用auth命令进行授权:

第一次输入了一个错误的密码test,授权失败,第二次输入正确的密码,返回ok,授权成功,之后就可以进行所有的操作。

如果我们不想每次登录进来之后都要用auth进行授权,那么我们可以采用另一种授权方式,就是在登陆客户端的时候用-a 来指定密码

sh-3.2# /usr/local/redis-2.8.1/src/redis-cli -a mypassword

上面的密码如果输错,也能进入,但是之后不能进行操作。需要用auth重新进行授权。

二、主从复制

Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。

redis主从复制的特点:

1.一台master可以拥有多个slave(1对多的关系)

2.多个slave可以连接同一个master外,还可以连接到其他slave(这样做的原因是如果masterdown掉之后其中的一台slave立马可以充当master的角色,这样整个服务流程不受影响)

3.中从复制不会阻塞master,在同步数据的同时,master可以继续处理client请求。

4.提高系统的伸缩性

redis主从复制的过程:

1.slave与master建立连接,发送sync同步命令。

2.Master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新得写命令并缓存。

3.后台完成保存后,将文件发送给slave

4.slave将文件保存到硬盘上

配置主从服务器:

配置slave服务器很简单,只需要在slave的配置文件中加入以下配置:

slaveof masterip masterport

如果主机开启了登录验证,那么还需要加入下面这句:

masterauth authpassword

然后启动从机,首先主机会发快照给从机,从机的数据库会更新到和主机相同的状态,然后往主机里写内容,从机也会随之更新。

如果我们在从机上写数据那么会报错:

(error) READONLY You can't write against a read only slave.

我们可以用info命令来查看主从服务器的信息,在从机上用info命令可以看到

role:slave

master_host:masterip

master_port:masterport

master_link_status:up证明和主机处在连接状态

在主机上用info命令

role:master

同时连接着几台从机

connected_slaves:1

同时可以查看连接到主机上的从机的ip和在线状态

slave0:ip=192.168.1.107,port=6379,state=online,offset=1709,lag=1


Redis (error) NOAUTH Authentication required.解决方法

出现认证问题,应该是设置了认证密码,输入密码既可以啦 主要字符串形式! 127.0.0.1:6379> auth "yourpassword"-----------------------------...
  • basycia
  • basycia
  • 2016年08月10日 20:39
  • 68004

redis报错(error) NOAUTH Authentication required.

刚开始是遇到RedisException in TestController.php line 62: Failed to AUTH connection的问题,有说是密码的问题,可是密码一直没换过,...
  • leedaning
  • leedaning
  • 2016年08月03日 10:06
  • 7997

NOAUTH Authentication required redis

今天突然之间遇到redis:NOAUTH Authentication required的问题,登录服务器也无法对redis进行存储查询操作。上网查了下说是被黑客攻击,具体各位可以在网上查到。这里说下...
  • qq_35981283
  • qq_35981283
  • 2017年02月27日 12:13
  • 1231

redis服务启动和停止(NOAUTH Authentication required)

Redis安装配置完成后,启动过程非常简单,执行命令/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf即可(在Linux...
  • lulidaitian
  • lulidaitian
  • 2017年05月02日 10:50
  • 4921

Redis (error) NOAUTH Authentication required. 解决方案

我今天去用Jedis去连接我的Redis服务器的时候发现报错 百度之后让我去redis里设置密码,然后 auth password11 如何进redis服务器 在redis的bin文件...
  • LANGZI7758521
  • LANGZI7758521
  • 2017年03月06日 15:02
  • 3985

操作redis 报NOAUTH Authentication required

参考文章: http://bbs.csdn.net/topics/391876863?page=1 http://www.cnblogs.com/farwish/p/4351828.html ...
  • liujihaozhy
  • liujihaozhy
  • 2017年02月20日 09:12
  • 2065

redis出现错误:NOAUTH Authentication required.

出现认证问题,应该是设置了认证密码,输入密码既可以啦 注意密码是字符串形式! 127.0.0.1:6379> auth "yourpassword" 127.0.0.1:6379>...
  • zhengxiangwen
  • zhengxiangwen
  • 2016年11月11日 18:38
  • 4358

Redis (error) NOAUTH Authentication required.解决方法

出现认证问题,应该是设置了认证密码,输入密码既可以啦 注意密码是字符串形式! [plain] view plain copy   127.0.0.1:6...
  • u010720985
  • u010720985
  • 2016年11月15日 19:26
  • 6988

解决Redis 报错 NOAUTH Authentication required

查了相关资料,说是添加了密码 需要在redis的配置文件redis.conf中开启requirepass就可以了,比如我设置我的访问密码是mypassword requirepass mypassw...
  • SmallDade
  • SmallDade
  • 2016年06月22日 20:31
  • 525

17 记一次 NOAUTH Authentication required

redisNotAuth 的问题   大概是上周四的时候吧, 把项目打包之后上传到测试服务器, 然后启动之后 出现了此异常 问题日志 [省略若干] [12-08 17:52:27.579 INFO ]...
  • u011039332
  • u011039332
  • 2016年12月13日 21:21
  • 2599
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NoSQL之Redis高级实用命令详解--安全和主从复制
举报原因:
原因补充:

(最多只允许输入30个字)