Redis单机版搭建上一篇已经基本介绍了,下面讨论Redis集群搭建方案和示例。

1、关于Redis常用的集群方案(三种):

  a、一主多从,如一个Master、两个Slave

  b、薪火相传,即集群中的从节点(Slave)同时也是主节点(Master),类似于链式传递一样

  c、反客为主,主节点down掉后从节点升级为主节点,通过人工干预 或者 通过Sentinel 哨兵模式来实现(下篇介绍)

2、模拟测试(以一主多从为例)

模拟主机信息(在同一台主机通过不同端口模拟):

角色 IP 端口
Master 127.0.0.1 6379
Salve 127.0.0.1 6380
Salve 127.0.0.1 6381

进入Redis目录,复制redis配置文件,给Slave使用:

 [root@VM_0_14_centos redis]# ls -lrt
total
-rwxr-xr-x root root Mar : redis-server
-rwxr-xr-x root root Mar : redis-cli
-rw-r--r-- root root Mar : redis.conf
[root@VM_0_14_centos redis]# cp redis.conf ./redis..conf
[root@VM_0_14_centos redis]# cp redis.conf ./redis..conf
[root@VM_0_14_centos redis]#

编辑Master配置文件redis.conf文件,主要配置以下参数:

daemonize  yes                                #开启守护进程

pidfile /var/run/redis_6379.pid         #开启守护进程后会将进程ID写入该文件

logfile "/var/log/redis.6379.log"        #配置日志文件

masterauth funnyboy0128               #master验证密码

requirepass funnyboypass              #Redis登录密码

编辑Slave配置文件redis.6380.conf 和redis.6381.conf ,修改pidfile和logfile的值,并在最后追加 slaveof 配置项,修改端口分贝为6380和6380

port  6380  和   port 6381

slaveof 127.0.0.1 6379                   #Master的I配合端口

启动Master节点:

 [root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]# ./redis-server ./redis.conf

启动Slave节点:

 [root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]# ./redis-server ./redis..conf
[root@VM_0_14_centos redis]# ./redis-server ./redis..conf
[root@VM_0_14_centos redis]#

客户端连接测试:

 [root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]# ./redis-cli -h 127.0.0.1 -p -a funnyboypass
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:> keys *
(empty list or set)
127.0.0.1:> set name hello redis
(error) ERR syntax error
127.0.0.1:> set name "hello redis"
OK
127.0.0.1:>
127.0.0.1:>
127.0.0.1:> get name
"hello redis"
127.0.0.1:>

连接Master,set信息到Redis。然后连接Slave查看数据,

 [root@VM_0_14_centos redis]#
[root@VM_0_14_centos redis]# ./redis-cli -h 127.0.0.1 -p -a funnyboypass
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:>
127.0.0.1:>
127.0.0.1:>
127.0.0.1:> get name
"hello redis"
127.0.0.1:>

6380 Slave节点数据OK。

 [root@VM_0_14_centos redis]# ./redis-cli -h 127.0.0.1 -p  -a funnyboypass
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:> get name
"hello redis"
127.0.0.1:>
127.0.0.1:>

测试Slave是否支持写入:

 127.0.0.1:>
127.0.0.1:> set sname hello
(error) READONLY You can't write against a read only replica.
127.0.0.1:>

结果显示Slave值只支持读操作。

补充关于redis.conf相关的配置项:

1、daemonize 如果需要在后台运行,把该项改为yes

2、pidfile 配置多个pid的地址 默认在/var/run/redis.pid

3、bind 绑定ip,设置后只接受来自该ip的请求

4、port 监听端口,默认是6379

5、loglevel 分为4个等级:debug verbose notice warning

6、logfile 用于配置log文件地址

7、databases 设置数据库个数,默认使用的数据库为0

8、save 设置redis进行数据库镜像的频率。

9、rdbcompression 在进行镜像备份时,是否进行压缩

10、dbfilename 镜像备份文件的文件名

11、Dir 数据库镜像备份的文件放置路径

12、Slaveof 设置数据库为其他数据库的从数据库

13、Masterauth 主数据库连接需要的密码验证

14、Requriepass 设置 登陆时需要使用密码

15、Maxclients 限制同时使用的客户数量

16、Maxmemory 设置redis能够使用的最大内存

17、Appendonly 开启append only模式

18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)

19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)

20、vm-swap-file 设置虚拟内存的交换文件路径

21、vm-max-memory 设置redis使用的最大物理内存大小

22、vm-page-size 设置虚拟内存的页大小

23、vm-pages 设置交换文件的总的page数量

24、vm-max-threads 设置VM IO同时使用的线程数量

25、Glueoutputbuf 把小的输出缓存存放在一起

26、hash-max-zipmap-entries 设置hash的临界值

27、Activerehashing 重新hash

Redis笔记-集群搭建的更多相关文章

  1. Redis本地集群搭建(5版本以上)

    Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...

  2. redis的集群搭建(很详细很详细)

    说在前面的话 之前有一节说了redis单机版的搭建和使用jedis管理redis单机版和集群版, 本节主要讲一下redis的集群搭建. 跳转到jedis管理redis的使用 认识redis集群 首先我 ...

  3. linux环境下redis安装(redis伪集群搭建)

    redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...

  4. Redis学习笔记(5)—— Redis的持久化方案&Redis的集群搭建

    一.Redis的持久化方案 Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化. Redis支持两种 ...

  5. Redis Cluster集群搭建与应用

    1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...

  6. redis主从集群搭建及容灾部署(哨兵sentinel)

    Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...

  7. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  8. Redis的搭建和Redis的集群搭建

    1.Redis的官网:https://redis.io/      Redis的测试网站:http://try.redis.io/ 2.参考博客:https://www.cnblogs.com/maf ...

  9. 【Redis】Redis cluster集群搭建

    Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...

随机推荐

  1. MySQL查看数据库安装路径

    有时候在我们开发的过程中并不一定记得数据库的安装路径.比如要查看mysql 数据库的安装目录在哪里:我们可以通过mysql命令查看mysql的安装路径: # 以下两个sql任意一个可查询 select ...

  2. 5.JAVA-内部类实例

    在JAVA中,类内部可以添加其它类,当然也可以实现类继承(后续章节学习). 本章示例-实现部门类和雇员类 可以通过部门对象,查找该部门的雇员信息. 可以通过雇员对象,查找该雇员所在的部门信息 代码如下 ...

  3. 学JAVA第二十天,接触异常处理,自定义异常

    1.java.lang.NullPointerException(经常报)(运行时异常) 属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去 ...

  4. 设计模式 | 建造者模式/生成器模式(builder)

    定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 结构:(书中图,侵删) 一个产品类 一个指定产品各个部件的抽象创建接口 若干个实现了各个部件的具体实现的创建类 一个 ...

  5. vue学习笔记3

    Vue.js - Day3 定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即 ...

  6. 安卓开发笔记(十二):SQLite数据库储存(上)

    SQLite数据库存储(上) 创建数据库 Android专门提供了一个 SQLiteOpenHelper帮助类对数据库进行创建和升级 SQLiteOpenHelper需要创建一个自己的帮助类去继承它并 ...

  7. Window10 输入法不能删除问题解决

    有时候我们想删除一个输入法,却发现输入法Remove 按钮是Disalbe 的,这时可以使用下面方法回避这个问题. 1.使用 Administrator 运行 Windows powerSheell. ...

  8. ERROR 1129 (HY000): mysqladmin flush-hosts

    mysql报错:ERROR 1129 (HY000): Host * is blocked because of many connection errors; unblock with 'mysql ...

  9. TCP三次握手和四次挥手的全过程

    三次握手: 第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认:第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个 ...

  10. pytorch autograd backward函数中 retain_graph参数的作用,简单例子分析,以及create_graph参数的作用

    retain_graph参数的作用 官方定义: retain_graph (bool, optional) – If False, the graph used to compute the grad ...