安全性

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

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

1.# requirepass foobared
2.requirepass beijing
 
  下面我们做一个实验,说明redis的安全性是如何实现的。

  我们设置了连接的口令是beijing

  那么们启动一个客户端试一下:

1.[root@localhost redis-2.2.12]# src/redis-cli 
2.redis 127.0.0.1:6379> keys * 
3.(error) ERR operation not permitted 
4.redis 127.0.0.1:6379>
 
  说明权限太小,我们可以当前的这个窗口中设置口令

1.redis 127.0.0.1:6379> auth beijing 
2.OK 
3.redis 127.0.0.1:6379> keys * 
4.1) "name" 
5.redis 127.0.0.1:6379>
 
  我们还可以在连接到服务器期间指定一个口令,如下:

1.[root@localhost redis-2.2.12]# src/redis-cli -a beijing 
2.redis 127.0.0.1:6379> keys * 
3.1) "name" 
4. redis 127.0.0.1:6379>
 
  可以看到我们在连接的时候可以指定一个口令。

  主从复制

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

  1、redis主从复制特点:

  (1)master可以拥有多个slave

  (2)多个slave可以连接同一个master外,还可以连接到其他slave

  (3)主从复制不会阻塞master,在同步数据时,master可以继续处理client请求

  (4)提高系统的伸缩性

  2、redis主从复制过程:

  当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master发送文件给slave,slave将文件保存到硬盘上,再加载到内存中,接着master会把缓存的命令转发给slave,后续master将收到的写命令发送给slave。如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。