【NoSql】Redis实践篇-安全性与主从复制配置(二)

一:安全性

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

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

修改密码的方法:

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

requirepass hejingyuan

在redis.conf中加入这一行代码之后,需要重新启动

然后我们用客户端(redis-cli)发现还能登陆进来,但是当我们执行操作的时候,比如keys*就会如下错误:

如图:

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

输入正确的密码,返回ok,授权成功,之后就可以进行所有的操作。

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

如图:

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

二:主从复制

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。

执行过程:

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

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

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

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

特点:

1.master可以有多个slave

2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构(这样做的原因是如果master down掉之后其中的一台slave立马可以充当master的角色,这样整个服务流程不受影响)

3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时则会阻塞不能处理client的请求。

4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave专门用于client的读请求,比如sort操作可以使用slave来处理(需要配置slave)。也可以用来做简单的数据冗余

5.可以在master禁用数据持久化,只需要注释掉master配置文件中的所有save配置,然后只在slave上配置数据持久化即Master可以将数据保存操作交给Slaves完成,从而避免了在Master中要有独立的进程来完成此操作。

实战:

通过上面的介绍,我们对redis的主从复制有了个大概了解,下面讲讲具体怎么配置master/slave。由于条件限制,这里用一台机器,启动两个进程来进行主从复制。

master server配置文件master.conf, 主要配置如下:

port 6379

#save 900 1

#save 300 10

#save 60 10000

slave server配置文件slave.conf,主要配置如下:

Slave1:

port 6380

save 900 1

save 300 10

save 60 10000

slaveof 192.168.24.215 6379

Slave2:

port6381

save 900 1

save 300 10

save 60 10000

slaveof 192.168.24.215 6379

启动master以及两个slave

测试运行: 连接master server,写入数据;连接 slave server,读数据

从测试结果看,数据确实自动复制了。通过复制功能,我们可以在master上只写数据,在slave上读数据,关闭master的持久化(或aof)功能(在salve上开启),从而分担master服务器读压力,提高master服务器性能,同时,master挂了,可以快速地用slave server来替换master server,提高系统的可用性。

在实际环境中,我们可以根据redis复制特点,定制适合我们自己的复制架构。比如,采用master server ->slave server ->slave server ->slave server这种一拖一【或一拖一再拖多】的方式,和常规的一拖多方式相比,这种方式更能减少master server在复制数据时的压力。

又如,单台redis主会遇到单点故障的问题,为了解决redis的高可用。接下来我们想达到的目的是,一个master带一个slave,而slave又带了一个slave,这样的好处是,当master故障后,直接把slaver1改为master,其他的配置不需要修改,服务又可以正常使用。

修改相应的配置

将slave2配置文件进行修改,其他不变

save 900 1

save 300 10

save 60 10000

slaveof192.168.24.214 6379

当master故障后,需要在slave1上首先执行slaveof no one命令,再次执行info Replication时,它已经转为master了,此时slave2不受影响。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 21:21:52

【NoSql】Redis实践篇-安全性与主从复制配置(二)的相关文章

(转)NoSQL——Redis在win7下安装配置的学习一

NoSQL——Redis在win7下安装配置的学习一 有些也是从网上看来的 1.下载安装 Redis它没有windows的官方版本,但是又非官方的版本,到官网上去下载相应的版本,我的电脑是win7下的64位系统,下载的是2.4.5版本的 http://code.google.com/p/servicestack/wiki/RedisWindowsDownload#Download_32bit_Cygwin_builds_for_Windows 然后直接解压就可以了. 我直接剪切64bit文件夹到

Redis教程(九):主从复制配置实例

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/136.html 一.Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了.相信在阅读完这篇Blog之后你也可以轻松做到.这里我们还是先列出一些理论性的知识,后面给出实际操作的案例. 下面的列表清楚的解释了Redis Replication的特点和优势. 1). 同一个Master可以同步多个Slaves. 

redis的主从复制配置

redis的主从复制配置 一.     原理 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面是关于redis主从复制的一些特点:1.master可以有多个slave2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构3.主从复制不会阻塞master.也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理cl

Redis 笔记与总结5 Redis 常用命令之 键值命令 和 服务器命令 && 高级应用之 安全性 和 主从复制

Redis 提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在 Linux 终端使用. 1. 键值相关命令: 2. 服务器相关命令 键值相关命令 ① keys 命令 返回满足给定 pattern 的所有 key. [例] 127.0.0.1:6379> keys * 1) "time" 2) "list4" 3) "list1" 4) "email" 5) "age" 6) "

实现Redis的主从复制配置

实现Redis的主从复制配置比较简单,而且容易明白. 下图是要配置的主从复制结构图: 1.说明 Redis主从复制中一个主服务可以有多个从服务,一个从服务可以有多个从服务. 配置比较简单,只需要更改redis.conf文件中的slaveof参数配置即可. slaveof参数的格式如:slaveof <masterip> <masterport> 如果master服务器设置有密码则需要配置masterauth参数. masterauth参数格式如:masterauth <mas

redis安装与集群配置

Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数

Redis实战 | 持久化、主从复制特性和故障处理思路

前言 前面两篇我们了解了Redis的安装.Redis最常用的5种数据类型.本篇总结下Redis的持久化.主从复制特性,以及Redis服务挂了之后的一些处理思路. 前期回顾传送门: Linux下安装Redis简易教程Redis实战 | 5种Redis数据类型详解 Redis的两种持久化方式 经常有面试官会问:Redis数据存储在内存中,万一断电了怎么办呢? 不要慌,这个其实就是在问Redis的持久化策略啦.我们知道,保存在内存中的数据,在服务重启或者是机器挂掉之后是会丢失的.而硬盘中的数据是不会丢

redis应用之主从架构配置

一.redis 主从复制安装配置 1.主从复制介绍 主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致:且实现Redis的主从复制非常简单,但是redis的主从复制是异步的. 2.redis主从复制特点 同一个Master可以拥有多个Slaves. Master下的Slave还可以接受同一架构中其它slave的链接与同步请求,实现数据的级联复制,即Master->Slave->Slave模式: Maste

[NOSQL] Redis介绍

Redis概述 Redis是Salvatore Sanfilippo在2009年为其初创公司LLOOGG开发的,目前仍是独立项目,但VMWare赞劣了项目(作者是其雇员).它采用C语言实现,因此性能很好.采用BSD许可证,使用键值存储,和Amazon Dynamo,Cassandra,Riak,Voldemort,Memcache类似.支持丰富的数据类型,比如数组,链表,集合等,非常适合需要表达时间线的web服务,例如微博. Redis支持的数据类型有: 字符串 链表 集合 有序集合 散列表 R