2025年3月16日 星期日 甲辰(龙)年 月十五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > Redis

redis集群搭建教程(以3.2.2为例)

时间:06-12来源:作者:点击数:53

redis从3.0版本开始支持集群,2.X版本主支持sentinel主从模式;所以要搭建集群务必下载3.0以上版本,本教程以3.2.2版本为例。

redis集群最少要有3个主节点,最典型的是3主3从组成集群;本教程以在同一台主机(192.168.220.128)搭建3个主节点(master)的集群为例。

1.下载

下载页面:https://redis.io/download

当前最新版本下载:http://download.redis.io/releases/redis-4.0.1.tar.gz

历史版本下载:http://download.redis.io/releases/

2.安装

先创建基本的目录结构

  • mkdir redis
  • mkdir redis/adm
  • mkdir redis/bin-3.2.2
  • ln -s bin-3.2.2 redis/bin
  • mkdir redis/data
  • mkdir redis/conf
  • mkdir redis/logs
  • mkdir redis/tmp

解压编译redis

  • tar -zxf redis-3.2.2.tar.gz
  • cd redis-3.2.2
  • make

将redis二进制文件和ruby脚本移动bin目录,将配置文件移到conf目录

  • cd src
  • ll |grep x
  • cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb ../../redis/bin
  • cd ..
  • cp runtest runtest-cluster runtest-sentinel ../redis/bin
  • cp redis.conf sentinel.conf ../redis/conf/

3.配置和启动redis

创建各端口进程的data目录

  • cd redis/data
  • mkdir 7011
  • mkdir 7012
  • mkdir 7013
  • mkdir 7014
  • mkdir 7015
  • mkdir 7016

创建各端口进程的配置文件,其中portNum和bind的IP根据自己情况修改

  • cd ../conf
  • for portNum in 7011 7012 7013 7014 7015 7016
  • do
  • cat > redis-$portNum.conf <<EOF
  • daemonize yes
  • pidfile /usr/myapp/redis/tmp/redis-$portNum.pid
  • dir /usr/myapp/redis/data/$portNum/
  • loglevel notice
  • logfile /usr/myapp/redis/logs/redis-$portNum.log
  • maxclients 10000
  • bind 192.168.220.128
  • port $portNum
  • protected-mode yes
  • #requirepass yourpasswd
  • cluster-enabled yes
  • cluster-config-file nodes-$portNum.conf
  • cluster-node-timeout 5000
  • cluster-require-full-coverage no
  • appendonly no
  • appendfsync everysec
  • auto-aof-rewrite-percentage 200
  • auto-aof-rewrite-min-size 256mb
  • save ""
  • repl-diskless-sync no
  • repl-diskless-sync-delay 5
  • EOF
  • done

创建集群时上边的bind最好只绑定一个本机网卡的IP地址,127.0.0.1也不要绑,不然在后边使用redis-trib创建集群时会一直停在等待节点加入状态。(不绑127.0.0.1的问题是redis-cli需要用-h指定IP才能登录)

然后启动各server进程

  • cd ../bin
  • ./redis-server ../conf/redis-7011.conf
  • ./redis-server ../conf/redis-7012.conf
  • ./redis-server ../conf/redis-7013.conf
  • ./redis-server ../conf/redis-7014.conf
  • ./redis-server ../conf/redis-7015.conf
  • ./redis-server ../conf/redis-7016.conf

4.安装ruby

由于redis官方提供的集群组建脚本是ruby写的,所以我们需要安装ruby

  • yum -y install ruby ruby-devel rubygems rpm-build
  • gem install redis

对于内网环境可能或是不能连接外网或没有源,需要先在别的机器上离线下载然后上传上去离线安装

  • yum install --downloaddir=. --downloadonly ruby #下载ruby及其依赖到当前目录,如果还有其他包没下载可模仿下载
  • yum install --downloaddir=. --downloadonly rubygems #下载gem及其依赖到当前目录
  • wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
  • yum localinstall ruby -y #进入上传的ruby存放的目录执行
  • yum localinstall rubygems -y #进入上传的rubygems目录执行
  • gem install -l ./redis-3.2.2.gem

yum localinstall有时装不上改用rpm逐个包安装即可;ruby依次安装compat-readline5--ruby-libs--ruby;gem依次安装ruby-irb--ruby-rdoc--rubygems

5.创建集群

  • cd ../bin
  • ./redis-trib.rb create --replicas 1 192.168.220.128:7011 192.168.220.128:7012 192.168.220.128:7013 192.168.220.128:7014 192.168.220.128:7015 192.168.220.128:7016

在提示Can I set the above configuration? (type 'yes' to accept):时输入yes接受即可(redis-trib有时会报错权限不足,以root执行即可)

6.查看集群情况

  • ./redis-cli -h 192.168.220.128 -p 7011 -c cluster nodes

-c是登录集群使可以自动跳转;如果要确保集群可用,可登录set/get一下

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门