Redis集群配置和安装

Redis集群简介:

Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序:
* 高性能,并且多达1000个节点的线性可扩展性。没有代理,使用异步复制,并且在进行赋值时没有合并操作。
* 可接受程度的写安全:当客户端与大多数master节点建立连接后,系统努力(使用最优的方式)保持来自客户端的写操作。通常有小窗口,其中确认的写操作可能会丢失。当客户端在一个小的分区中,窗口丢失写操作会更大。
* 可用性:Redis集群支持网络分区——其中大部分主节点都可访问,并且不可访问的各master节点对应的从至少一个可访问。而且采用副本迁移,有多个从的主会提供一个从给没有从的主。

redis-cluster分为主从复制,哨兵模式
下面我们使用主从复制模式方案来安装redis三主三从集群模式:

Redis安装配置

Redis安装配置环境(本教程使用CentOS6.9(final)_x86+Redis-3.2.8)

1)下载(或上传)安装包(redis-3.2.8)

# cd   /usr/local/src
# wget   http://download.redis.io/releases/redis-3.2.8.tar.gz

2)解压

# tar -zxvf  redis-3.2.8.tar.gz
# cd /usr/local/src/redis-3.2.8

3)下载和安装编译所需要的包

# yum install gcc tcl

4)安装(使用PREFIX指定安装路径)

# make PREFIX=/usr/local/redis-1-M install

5)启动redis,出现如下图示就说明redis配置正确(默认开启端口为6379):

# /usr/local/redis-1-M/bin/redis-server 
5839:C 05 Jul 19:36:59.013 # Warning: no config file specified, using the default config. In order to specify a config file use ./bin/redis-server /path/to/redis.conf
5839:M 05 Jul 19:36:59.014 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.8 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 5839
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

5839:M 05 Jul 19:36:59.015 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5839:M 05 Jul 19:36:59.015 # Server started, Redis version 3.2.8
5839:M 05 Jul 19:36:59.015 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
5839:M 05 Jul 19:36:59.015 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
5839:M 05 Jul 19:36:59.015 * The server is now ready to accept connections on port 6379

Redis cluster安装配置

安装之前还需要安装ruby,来运行官方提供的搭建集群的工具:redis-trib.rb(看后缀名就知道不能直接运行!)

1)安装ruby与ruby的工具包gem:

# cp  /usr/local/src/redis-3.2.8/src/redis-trib.rb  /usr/local/redis-1-M/bin/redis-trib
# yum -y install ruby ruby-devel rubygems rpm-build 
# gem install redis 

2)搭建集群
首先搭建集群至少需要3个master节点,另外我们为每个master节点分配一个slave节点。这里我们创建6个redis节点,对应的节点ip和端口号如下:

集群主1-从1 集群主2-从2 集群主3-从3
172.21.3.105:7000 172.21.3.105:7001 172.21.3.105:7002
172.21.3.105:7003 172.21.3.105:7004 172.21.3.105:7005

ok,分配好端口后我们开始继续创建5个集群配置目录,并拷贝redis.conf配置文件到各节点配置目录

# cd /usr/local/src/redis-3.2.8
# mkdir /usr/local/redis-1-M/{conf,data,logs}
# cp redis.conf  /usr/local/redis-1-M/conf/redis-7000.conf
# make PREFIX=/usr/local/redis-1-S install
# mkdir /usr/local/redis-1-S/{conf,data,logs}
# cp redis.conf  /usr/local/redis-1-S/conf/redis-7001.conf
# make PREFIX=/usr/local/redis-2-M install
# mkdir /usr/local/redis-2-M/{conf,data,logs}
# cp redis.conf  /usr/local/redis-2-M/conf/redis-7002.conf
# make PREFIX=/usr/local/redis-2-S install
# mkdir /usr/local/redis-2-S/{conf,data,logs}
# cp redis.conf  /usr/local/redis-2-S/conf/redis-7003.conf
# make PREFIX=/usr/local/redis-3-M install
# mkdir /usr/local/redis-3-M/{conf,data,logs}
# cp redis.conf  /usr/local/redis-3-M/conf/redis-7004.conf
# make PREFIX=/usr/local/redis-3-S install
# mkdir /usr/local/redis-3-S/{conf,data,logs}
# cp redis.conf  /usr/local/redis-3-S/conf/redis-7005.conf

查看会显示共6个redis目录

# ls /usr/local/
redis-1-M  redis-1-S  redis-2-M  redis-2-S  redis-3-M  redis-3-S 

3)修改每个目录中的配置文件

配置选项 选项值 说明
bind 172.21.3.105 绑定ip,让其他主机访问,默认为本机127.0.0.1
daemonize yes 是否作为守护进程,后台运行
pidfile /var/run/redis-7000.pid 如以后台进程运行,则需指定一个 pid,默认为/var/run/redis.pid
port 7000 监听端口,默认为 6379 注意:集群通讯端口值默认为此端口值+10000,如 17000
databases 1 可用数据库数,默认值为16。如无特殊要求,建议只设置一个数据库 database 1
cluster-enabled yes 打开redis集群
cluster-config-file /usr/local/redis-1-M/conf/nodes-7000.conf 集群配置文件,启动自动生成,不需要创建
cluster-node-timeout 15000 节点互连超时时间,毫秒数
cluster-migration-barrier 1 数据迁移的副本临界数,这个参数表示当一个主节点的从节点数大于1个时,会将多余的从节点割让给没有任何从节点的主节点
cluster-require-full-coverage yes 集群需完全覆盖,如果有一些key space没有被集群覆盖到,则集群将停止写入
appendonly yes 启用 aof 持久化方式因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为 no
dir /usr/local/redis-1-M/data 节点数据持久化存放目录(建议配置)
masterauth password 如果master服务器设置有密码则需要配置masterauth参数,集群的密码需一致
requirepass password 服务器中为设置requirepass参数,则从服务中不需要设置masterauth参数

4)然后启动6个节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值