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

所有分类  >  数据库相关  >  NoSQL数据库

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

NoSQL Redis   2014-01-09 22:52:47 发布

您的评价:
     
0.0  

收藏     1收藏

一、安全性

为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

原文地址:http://blog.csdn.net/liutingxu1/article/details/17116107

时间: 2024-10-12 14:35:51

NoSQL之Redis高级实用命令详解--安全和主从复制的相关文章

非关系型数据库(NoSQL)——Redis安装及部署详解

在现在的互联网大潮中,NoSQL可谓是家喻户晓,Redis作为NoSQL中及其重要的一员,使我们走向架构道路的一条必经之路.作为运维工程师来说,是必须要掌握的! 既然提到了Redis数据库是非关系型数据,并且需要掌握Redis数据库.那么关于关系型数据库与非关系型数据库的基本概念是必须要了解的. 一.关系型数据库与非关系型数据库的基本概念: 数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库,我们统称为非关系型数据库. 1.关系型数据库 关系型数据库是一个结构化的数据库,创建在关

Redis(2):常用命令详解

redis命令不区分大小写 通用命令:1. 获得符合规则的键名列表: keys pattern   其中pattern符合glob风格  ? (一个字符) * (任意个字符) [] (匹配其中的任意一个字符)  \x (转义字符) 需要注意的是keys命令会遍历redis中的所有键,如果键比较多,会影响性能 keys *  会列出当前库中的所有键, 注意这个列出的不仅仅是string类型的,其他所有类型的key都包括(即使是hash类型的). 127.0.0.1:6379> HSET hashk

Redis 配置文件及命令详解

==基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化. save 300 10 #必须是300秒之后至少10个关键字发生变化. save 60 10000 #必须是60秒之后至少10000个关键字发生变化. stop-writes-on-bgsave-error yes #后台存储错误停止写. r

Git 实用命令详解

查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id git co -- <file> # 抛弃工作区修改 git co . # 抛弃工作区修改 git add <file> # 将工作文件修改提交到本地暂存区 git add . # 将所有修改过的工作文件提交暂存区 git rm <file> # 从版本库中删除文件 git r

8、Redis中sort命令详解

写在前面的话:读书破万卷,编码如有神 ------------------------------------------------- 1.排序 (1)sort:可以对List.Set.ZSet里面的值进行排序. 格式是:SORT source-key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE dest-key] 参数说明: by : 设置排序的参考键,

Redis学习(6)-Redis高级实用特性

Redis高级实用特性: 1.安全性2.主从复制3.事务处理4.持久化机制5.发布订阅消息6.虚拟内存的使用 安全性: 设置客户端连接后进行任何其他指定前需要使用的密码警告:因为Redis速度相当快,所以一台比较好的服务器下一个外部的用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解配置方法: requirepass beijing(在配置文件中配置密码) auth beijing(授权方式1) redis-cli -a beijing(授权方式2) 主

svn常用命令详解(很全,很实用)

ubuntu下安装subversion客户端: sudo apt-getinstall subversion subversion-tools 1.检出 svn  co  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn  co  svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码 svn  checkout  http://路径(目录或文件的全路径)

ant的高级使用,ant命令详解,ant打包,ant编译后打包去掉jar文件

在日常的项目开发中,我们可以经常性的需要打包测试,尤其是开发环境是windows,而实际环境则是linux. 这样的话,很多程序员要一会打一个包,一会打一个包,这些包可能会很大,实际上只有代码部分会变动,而jar包基本则不动. 当然很多人可能会说,自动化测试.很好的,我们今天要做的就是自动化测试的第一步. 这个时候我是可以使用ant来打包,去掉项目中的所有的jar文件.然后在项目的tomcat启动时到特定的地点去加载jar文件. 这样做,war包可能会只有几M,什么更小.具体如何动态的加载jar

网工最实用最常用的网络命令之一——Ping 命令详解(一)

Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障. 网工最实用最常用的网络命令之一--Ping 命令详解(一)使用格式:ping -参数 (中间有个空格) 很多时候大家都只单独ping 加IP地址,验证本机到目的IP地址之间的网络是否连通,其实加上一些参数会获得不一样的结果. 1.ping -t 目标主机IP地址 机房的环境有多噪音大家都