Nosql数据库——redis(五)主从复制
2015-09-30 16:56
706 查看
Redis提供了丰富的命令对数据库以及各种数据类型进行操作,不仅仅适用于windows,同样适用于Linux等等终端。
主要包括:键值相关命令以及服务器相关命令。这里不再一一介绍,网上有大量的资料。
我们主要来说说redis的一些高级的应用比如安全性以及主从复制。
在之前的讲解中,我们的服务开启之后,客户端和服务端进行相连后,便可以进行相应的操作,没有密码等等安全机制的验证。
问题出来了,如何使得其安全?设置客户端连接后进行任何指定前需要使用的密码。这里需要注意的是:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒中进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/daec541449044ba88f7e6e40151bf577)
此时重新启动服务,指定我们的配置文件,并且启动客户端连接服务:此时出现无法连接:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/faffdd8da6d56c935a3369c1eaa8fa85)
此时客户端连接是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/9d4e56fe4359c19a8a5917a233b1ddd5)
输入查看之前所有的键值,此时的提示信息是:ERRoperation not permtted.
很清楚没有权限去访问,下面我们来进行授权,那么怎么授权呢?
我们来进行授权,看看效果怎么样?
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/b197f7efa313b94549cff1f4a70a9049)
此时会发现用户拥有了操作的权限。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/63b7e591ffae41e227dc81defe934755)
如果是本地的话,不指定ip和端口均可,但是如果是远程的话,必须指定ip和端口。
(2) 多个slave可以连接同一个master外,还可以连接其他slave.
(3) 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求。
(4) 提高系统的伸缩性。
Slaveof 192.168.1.1 6379 #指定master的ip和端口。
Masterauth root123 #指定主机的密码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/ee660c1ad5245120ef384121abb49fd0)
此时进行从服务器的配置,从服务器的配置与主服务器之间是从属关系。不仅仅需要指定主服务器的ip和端口号,还需要进行授权,也就是指定服务器的密码。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/123df01c2c35b51d87bb940e38d6c14f)
需要注意的是:因为redis.conf默认端口号是6379,不在一个服务器上使用相同的端口号没有什么,但是此时在一台服务器上进行的模拟,故而需要将另一处的从服务器进行端口号的修改,我改成了6378,这个随意,主要不重复即可。
此时我们在主服务上进行写操作,此时在从服务器上进行读操作:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/d6dd10ba3775733c2b924e3facb581d9)
此时从从机上查找到了主机上的值,说明主从复制成功。端口号6379是主机,而端口号6378是从机,我们可以看到设置成功了。
主机的信息显示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/0615c614107ffa3563cc148484581f6d)
从机的配置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/f2f09050531413f4571b1e3e28b01a25)
从信息中我们可以看到主机的相关配置。
值得注意的是:我在操作过程中,如果使用双击打开客户端或者服务端的时候,此时总是安执行是的默认的配置,修改的配置不知道为什么无法执行,于是我采取的都是输入命令完整的命令来启动服务,这样的话,启动的是指定的配置文件(只是针对修改的那个服务器)。
比如从机客户端启动我是这样启动的,服务端是输入:redis-server redis.conf:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/10/f1d15ea369defe49e841f321b9ba9feb)
到此我们的主从配置配置成功,是不是很简单,动手试试吧。
主要包括:键值相关命令以及服务器相关命令。这里不再一一介绍,网上有大量的资料。
我们主要来说说redis的一些高级的应用比如安全性以及主从复制。
在之前的讲解中,我们的服务开启之后,客户端和服务端进行相连后,便可以进行相应的操作,没有密码等等安全机制的验证。
问题出来了,如何使得其安全?设置客户端连接后进行任何指定前需要使用的密码。这里需要注意的是:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒中进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
1. 如何设置密码?
修改配置文件redis.config
修改redis的配置文件redis.config。打开配置文件进行修改,requirepass是设置密码的,这里我们设置为 root123,如图:此时重新启动服务,指定我们的配置文件,并且启动客户端连接服务:此时出现无法连接:
此时客户端连接是:
输入查看之前所有的键值,此时的提示信息是:ERRoperation not permtted.
很清楚没有权限去访问,下面我们来进行授权,那么怎么授权呢?
授权
授权存在两种方式,一种是是登陆后进行授权,另一种是登陆时进行授权登陆后的授权(redis 127.0.0.1:6379> AUTHPASSWORD)
上面我们在配置文件中的修改,指定密码为root123。我们来进行授权,看看效果怎么样?
此时会发现用户拥有了操作的权限。
登录时授权(redis-cli -h host -p port -apassword)
如果是本地的话,不指定ip和端口均可,但是如果是远程的话,必须指定ip和端口。
2. 主从复制
什么是主从复制?主从复制就是除了一个主服务器还有多个辅助的服务器协同一起工作。Redis的主从复制配置和使用很简单,通过主从复制可以允许多个slave server拥有和masterserver 相同的数据库副本。主从复制的特点
(1) Master可以拥有多个slave(2) 多个slave可以连接同一个master外,还可以连接其他slave.
(3) 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求。
(4) 提高系统的伸缩性。
如何进行配置呢?
只要在slave服务器中添加相应的配置即可。Slaveof 192.168.1.1 6379 #指定master的ip和端口。
Masterauth root123 #指定主机的密码
此时进行从服务器的配置,从服务器的配置与主服务器之间是从属关系。不仅仅需要指定主服务器的ip和端口号,还需要进行授权,也就是指定服务器的密码。
Window下模拟主从复制
我电脑上有一个redis,一个是64位,那么我将其复制一份,拷贝到别的地方进行实验。修改另一处的配置文件redis.conf,改为下面的配置:需要注意的是:因为redis.conf默认端口号是6379,不在一个服务器上使用相同的端口号没有什么,但是此时在一台服务器上进行的模拟,故而需要将另一处的从服务器进行端口号的修改,我改成了6378,这个随意,主要不重复即可。
此时我们在主服务上进行写操作,此时在从服务器上进行读操作:
此时从从机上查找到了主机上的值,说明主从复制成功。端口号6379是主机,而端口号6378是从机,我们可以看到设置成功了。
查看主机和从机的连接信息(info)
如何判断哪个是从机哪个是主机呢?使用info来查看。主机的信息显示:
从机的配置:
从信息中我们可以看到主机的相关配置。
值得注意的是:我在操作过程中,如果使用双击打开客户端或者服务端的时候,此时总是安执行是的默认的配置,修改的配置不知道为什么无法执行,于是我采取的都是输入命令完整的命令来启动服务,这样的话,启动的是指定的配置文件(只是针对修改的那个服务器)。
比如从机客户端启动我是这样启动的,服务端是输入:redis-server redis.conf:
到此我们的主从配置配置成功,是不是很简单,动手试试吧。
3. 小结
无论是密码的设置还是主从复制都是为了我们的数据安全,在当今的这个时代,大数据已经成为处理的一部分,如何做好数据安全很重要啊~相关文章推荐
- 「Redis学习笔记」事务和错误处理
- [备忘] redis 生产环境配置
- 活用Redis
- opensips redis依赖包
- 利用redis实现分布式锁
- redis 对lua 脚本传出类型的理解
- redis 配置说明
- StackExchange.Redis 使用 - 事件(五)
- redis的备份
- redis安装、配置、命令
- spring集成redis cluster
- nodejs+socketio+redis 简单消息推送实例(一)
- redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐
- redis存取二进制数据
- StackExchange.Redis 使用-配置 (四)
- Redis 文档(一)
- 「Redis实例」序列化和反序列化
- redis学习笔记
- Nosql数据库——redis(四)数据类型
- redis导库