如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力。 那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态。

在服务器上构筑Redis的集群配置:

1.切换root用户

  su - centos
  输入密码 ******
  sudo su
  输入密码 ******

2.安装前提包

  yum install gcc-c++
  yum install -y ruby
  yum install -y rubygems

3.下载redis4.0.7

  wget http://download.redis.io/releases/redis-4.0.7.tar.gz

4.移动redis至/usr/local/

  mv redis-4.0.7.tar.gz /usr/local/

  cd /usr/local/

5.解压redis安装包

  tar zxf redis-4.0.7.tar.gz

6.映射redis快捷文件夹

  ln -s /usr/local/redis-4.0.7 /usr/local/redis

  cd /usr/local/redis

7.编译

  make

8.映射redis bin快捷文件夹

  ln -s /usr/local/redis/src /usr/local/redis/bin

9.备份配置文件

  mkdir /usr/local/redis/conf_bak

  cp -rp /usr/local/redis/*.conf /usr/local/redis/conf_bak/

10.修改配置文件redis.conf

  vi /usr/local/redis/redis.conf

修改配置如下:
  protected-mode yes
##绑定的主机地址
##bind <本机ip>
  bind 10.76.64.16
##Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
  daemonize yes
##设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
#slaveof <masterip> <masterport>
  slaveof 10.76.64.16 6379 (为主服务器的 ip端口号)
##当master服务设置了密码保护时,slav服务连接master的密码
#masterauth <master-password>
  masterauth redis2ac
##设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
#requirepass <master-password>
  requirepass redis2ac

11.修改哨兵配置

  vi /usr/local/redis/sentinel.conf

修改配置如下:

##bind <本机ip>
  bind 10.76.64.16
##Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
  daemonize yes
##sentinel monitor mymaster <主机master ip> <主机master port> 1
  sentinel monitor mymaster 10.76.64.16 6379 1(为主服务器的 ip端口号)
##sentinel auth-pass mymaster <主机master redis密码>
  sentinel auth-pass mymaster redis2ac

12.redis服务启动

  /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

13.reids哨兵进程启动

  /usr/local/redis/bin/redis-sentinel /usr/local/redis/sentinel.conf

redis主从复制过程:

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

如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。master同步数据时是非阻塞式的,可以接收用户的读写请求。然而在slave端是阻塞模式的,slave在同步master数据时,并不能够响应客户端的查询。

可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化

拥有主从服务器的好处(从服务器是只读的,可以一主多从)

1.    主服务器进行读写时,会转移到从读,减轻服务器压力

2.    热备份 主从都可以设置密码,也可以密码不一致

  

Redis的集群配置的更多相关文章

  1. redis:集群配置

    一.redis集群相关 1.概念:redis集群是通过数据分区提供可用性的,这样即使一部分节点失效也可以继续处理请求. 2.原理:集群使用数据分片实现,一个redis集群包括16384个哈希槽,数据库 ...

  2. Redis简单集群配置

    参考链接为:http://blog.csdn.net/u014230881/article/details/71123494 比较系统学习和熟练使用Redis命令可参考该教程:http://www.r ...

  3. Centos6 安装 Redis 和集群配置

    Redis安装 先确认gcc和tcl已经安装 sudo yum install gcc-c++ sudo yum install tcl 解压, 编译和安装 .tar.gz /usr/src/ cd ...

  4. Redis Sentinel集群配置中的一些细节

    今天在配置Redis集群,用作Tomcat集群的缓存共享.关于Redis集群的配置网上有很多文章,这里只是记录一下我在配置过程中遇到的一些小的细节问题. 1. 关于Protected Mode的问题 ...

  5. redis sentinel 集群配置-主从切换

    1.配置redis master,redis slave(配置具体操作见上文http://www.cnblogs.com/wangchaozhi/p/5140469.html). redis mast ...

  6. redis哨兵集群配置

    redis 集群架构图: 需要先配置redis主从,我这边是单机部署的. 采用一主一从,两个sentinel. redis host: 172.31.11.235 redis-master port: ...

  7. Redis redis-trib集群配置

    redis文档:http://doc.redisfans.com/ 参考:https://www.cnblogs.com/wuxl360/p/5920330.html http://www.cnblo ...

  8. redis之 集群配置(主从复制)

    集群的作用: 集群的方式有二种: 第二种的好处是:master宕机以后可以直接切换到slave1 主从通信的过程 先通过dump导出大块的rdb 然后把aof缓冲过来,然后通过replicationf ...

  9. Redis cluster集群配置教程

    这里建议大家安装4.0.9版本的 1.打开Centos虚拟机,登陆. 2.通过WinSCP把Redis集群tar包上传到虚拟机里的目录里,我的目录是 /usr/local 这里我已经上传过了并解压了, ...

随机推荐

  1. UNIX网络编程——UDP 的connect函数(改进版)

    上一篇我们提到,除非套接字已连接,否则异步错误是不会返回到UDP套接字的.我们确实可以给UDP套接字调用connect,然而这样做的结果却与TCP连接大相径庭:没有三次握手.内核只是检查是否存在立即可 ...

  2. sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数

    sql的统计函数 sql统计函数有 count 统计条数,配合group用 sum 累加指定字段数值 但注意sum(1)就特殊 sum(1)等同于count(*) sum(1)统计个数,功能和coun ...

  3. LCD 常用的客观效果指标和测试方法

    1.DPI--精密度: 评分标准 DPI 评分 DPI<200 50 200≤DPI<250 60 250≤DPI<300 70 300≤DPI<350 80 350≤DPI& ...

  4. awk 循环语句例子

    awk 循环语句例子 运行结果:

  5. UNIX环境高级编程——文件和目录

    一.获取文件/目录的属性信息 int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); in ...

  6. python的str()和repr()的区别

    str()一般是将数值转成字符串. repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思.如list,dict使用str()是无效的,但使用repr可以,这是为了看 ...

  7. (NO.00003)iOS游戏简单的机器人投射游戏成形记(四)

    上篇说道要想将手臂固定在机器人身体上,而且手臂还能转动,简单的办法是使用物理关节.但这不是只有这种办法.用关节固定物体有时候不能满足需要,这时必须自己动手写代码处理,后面会介绍另一种固定的方法. 在S ...

  8. iOS-导航头像缩放,支持点击回调

    在很多App中,经常存在一种需求就是,界面上下滚动时用户的头像也会跟着滚动,而用户头像在视图向上滚动一定范围时停留并在导航栏的位置 基本用法如下:1.单纯的实现这一效果: - (LEOHeaderVi ...

  9. (二十一)即时通信的聊天气泡的实现II

    一些优化: 禁止TableView的点击: self.tableView.allowsSelection = NO; 合并相同的时间: 不需要显示的时间,只要不设置尺寸就行了. 一个if判断的技巧,为 ...

  10. Linux管道编程实例

    /*管道 可以把管道想象为两个实体之间的单向连接器.注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字. 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中: 命名 ...