linux redis搭建

本文详细介绍如何使用Redis 3.2.1版本搭建一个包含六个节点的集群环境,并通过两台虚拟机模拟3个主节点与3个从节点的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux

1. 安装

  tar -zxvf redis-3.2.1.tar.gz
  cd redis-3.2.1/
  make test 
  cd redis-3.2.1/src/
  make 
  make install
  cd /usr/local/redis/bin
  ll #查看安装后的文件,如有redis-server表明安装成功
   cp -rf /home/gilbert/app/redis-3.2.1/redis.conf /usr/local/redis/ #复制redis.conf到安装目录
  cd /usr/local/redis/
  ll #查看是否复制成功

如出现以下错误

得先安装tcl

  
  tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
  cd /usr/local/tcl8.6.1/unix/
  ./configure
  make
  make install

2. redis命令

1)启动

  
  cd /usr/local/redis/bin
  ./redis-server #启动redis

linux redis集群搭建

一 背景

​ 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。

​ redis 采用 redis-3.2.1 版本。

​ 两台虚拟机都是 CentOS ,

​ 一台 CentOS(IP:192.168.1.128,三个端口7000,7001,7002),

​ 一台 CentOS(IP:192.168.1.129,三个端口7003,7004,7005)

                本人虚拟机如下图

               

二 安装前置条件

1. tcl

优先考虑yum安装

  
  yum list tcl 
  yum install -y tcl

如果yum源里没有,刚从官网下载gz包安装。以安装到/home/gilbert/app/下为例

  
  cd /home/gilbert/app/
  tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
  cd /usr/local/tcl8.6.1/unix/
  ./configure
  make
  make install

2. ruby

优先考虑yum安装

  
  yum list ruby 
  yum install -y ruby

如果yum源里没有,刚从官网下载gz包安装。以安装到/home/gilbert/app/下为例

  
  cd /home/gilbert/app/
  tar -zxvf ruby-2.2.7.tar.gz
  cd ruby-2.2.7
  ./configure
  make test
  make 
  make install

3. rubygems

优先考虑yum安装

  
  yum list rubygems 
  yum install -y rubygems

如果yum源里没有,刚从官网下载gz包安装。以安装到/home/gilbert/app/下为例

  
  cd /home/gilbert/app/
  tar -zxvf rubygems-2.7.7.tgz
  cd rubygems-2.7.7
  ruby setup.rb

三 集群搭建

1.复制redis-trib.rb

  cd /home/gilbert/app/
  cd redis-3.2.1
  cp src/redis-trib.rb /usr/local/bin/ 

2.创建 Redis 节点

1) 首先在 192.168.1.128 机器上 redis-3.2.1 目录下创建 redis_cluster 目录以及7000,7001,7002目录;

  cd /home/gilbert/app/
  cd redis-3.2.1
  mkdir redis_cluster
  cd redis_cluster
  mkdir 7000
  mkdir 7001
  mkdir 7002

2) 将redis.conf拷贝到7000,7001和7002目录下

  cp redis.conf redis_cluster/7001
  cp redis.conf redis_cluster/7002
  cp redis.conf redis_cluster/7003

3) 分别修改7000,7001和7002目录下redis.conf。需要修改的内容如下

  port  7000                                     //端口7000,7001,7002        
  bind  192.168.1.128                              //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
  daemonize    yes                               //redis后台运行
  pidfile  /var/run/redis_7000.pid               //pidfile文件对应7000,7001,7002
  cluster-enabled  yes                           //开启集群  把注释#去掉
  cluster-config-file  nodes_7000.conf          //集群的配置,配置文件首次启动自动生成 7000,7001,7002
  cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
  appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志

4)在192.168.1.129服务器重复以上3个步骤,但是目录分别为7003,7004和7005,redis.conf也修改为对应的7003,7004和7005

3.启动节点

1) 在 192.168.1.128 机器上启动

  cd /home/gilbert/app/redis-3.2.1
  redis-server redis_cluster/7000/redis.conf
  redis-server redis_cluster/7001/redis.conf
  redis-server redis_cluster/7002/redis.conf

2)在 192.168.1.129 机器上启动

  cd /home/gilbert/app/redis-3.2.1
  redis-server redis_cluster/7003/redis.conf
  redis-server redis_cluster/7004/redis.conf
  redis-server redis_cluster/7005/redis.conf

4. 检查 redis 启动情况

1) 在 192.168.1.128 机器上查看

  ps -ef | grep redis
  root      2608     1  2 05:38 ?        00:00:00 redis-server 192.168.1.128:7000 [cluster] 
  root      2610     1  1 05:38 ?        00:00:00 redis-server 192.168.1.128:7001 [cluster] 
  root      2616     1  1 05:38 ?        00:00:00 redis-server 192.168.1.128:7002 [cluster] 
  root      2620  2544  0 05:38 pts/0    00:00:00 grep redis
  
  netstat -tnlp | grep redis
  tcp        0      0 192.168.1.128:7000          0.0.0.0:*                   LISTEN      2608/redis-server 1 
  tcp        0      0 192.168.1.128:7001          0.0.0.0:*                   LISTEN      2610/redis-server 1 
  tcp        0      0 192.168.1.128:7002          0.0.0.0:*                   LISTEN      2616/redis-server 1 
  tcp        0      0 192.168.1.128:17000         0.0.0.0:*                   LISTEN      2608/redis-server 1 
  tcp        0      0 192.168.1.128:17001         0.0.0.0:*                   LISTEN      2610/redis-server 1 
  tcp        0      0 192.168.1.128:17002         0.0.0.0:*                   LISTEN      2616/redis-server 1 

2) 在 192.168.1.129 机器上查看

  
  ps -ef | grep redis
  root      2206     1  0 05:39 ?        00:00:00 redis-server 192.168.1.129:7003 [cluster] 
  root      2208     1  0 05:39 ?        00:00:00 redis-server 192.168.1.129:7004 [cluster] 
  root      2216     1  0 05:39 ?        00:00:00 redis-server 192.168.1.129:7005 [cluster] 
  root      2221  2159  0 05:39 pts/0    00:00:00 grep redis
  
  netstat -tnlp | grep redis
  tcp        0      0 192.168.1.129:17003         0.0.0.0:*                   LISTEN      2206/redis-server 1 
  tcp        0      0 192.168.1.129:17004         0.0.0.0:*                   LISTEN      2208/redis-server 1 
  tcp        0      0 192.168.1.129:17005         0.0.0.0:*                   LISTEN      2216/redis-server 1 
  tcp        0      0 192.168.1.129:7003          0.0.0.0:*                   LISTEN      2206/redis-server 1 
  tcp        0      0 192.168.1.129:7004          0.0.0.0:*                   LISTEN      2208/redis-server 1 
  tcp        0      0 192.168.1.129:7005          0.0.0.0:*                   LISTEN      2216/redis-server 1 

5.创建集群

1) 前置条件,安装了redis-3.2.1.gem并且redis安装到了gem

  gem install -l /home/gilbert/app/redis-3.2.1.gem
  gem isntall redis

2) 创建集群节点

   cd /home/gilbert/app/redis-3.2.1
   redis-trib.rb  create  --replicas  1  192.168.1.128:7000 192.168.1.128:7001  192.168.1.128:7002 192.168.1.129:7003  192.168.1.129:7004  192.168.1.129:7005
   
   >>> Creating cluster
  [ERR] Sorry, can't connect to node 192.168.1.129:7003
  [root@master redis-3.2.1]# redis-trib.rb  create  --replicas  1  192.168.1.128:7000 192.168.1.128:7001  192.168.1.128:7002 192.168.1.129:7003  192.168.1.129:7004  192.168.1.129:7005
  >>> Creating cluster
  >>> Performing hash slots allocation on 6 nodes...
  Using 3 masters:
  192.168.1.129:7003
  192.168.1.128:7000
  192.168.1.129:7004
  Adding replica 192.168.1.128:7001 to 192.168.1.129:7003
  Adding replica 192.168.1.129:7005 to 192.168.1.128:7000
  Adding replica 192.168.1.128:7002 to 192.168.1.129:7004
  M: 3bf938e2aa2aa67fb734a3d5d9d238f0c0263655 192.168.1.128:7000
     slots:5461-10922 (5462 slots) master
  S: 53d16b0d49c3acb955e0db24feed48f6e29eb1c6 192.168.1.128:7001
     replicates 574a1ee8efa5cbf65e869a80e7a9fbed8efbf34a
  S: 328a6c998de381a4d14ededbb642f77b3275fbbb 192.168.1.128:7002
     replicates aa5ca621c042b3e96c18db3d7af17ec1f1bce22f
  M: 574a1ee8efa5cbf65e869a80e7a9fbed8efbf34a 192.168.1.129:7003
     slots:0-5460 (5461 slots) master
  M: aa5ca621c042b3e96c18db3d7af17ec1f1bce22f 192.168.1.129:7004
     slots:10923-16383 (5461 slots) master
  S: fdcd0fa6de5e4166a893e4b1dc7f4cef5f6d78ac 192.168.1.129:7005
     replicates 3bf938e2aa2aa67fb734a3d5d9d238f0c0263655
  Can I set the above configuration? (type 'yes' to accept): yes
  >>> Nodes configuration updated
  >>> Assign a different config epoch to each node
  >>> Sending CLUSTER MEET messages to join the cluster
  Waiting for the cluster to join......
  >>> Performing Cluster Check (using node 192.168.1.128:7000)
  M: 3bf938e2aa2aa67fb734a3d5d9d238f0c0263655 192.168.1.128:7000
     slots:5461-10922 (5462 slots) master
  M: 53d16b0d49c3acb955e0db24feed48f6e29eb1c6 192.168.1.128:7001
     slots: (0 slots) master
     replicates 574a1ee8efa5cbf65e869a80e7a9fbed8efbf34a
  M: 328a6c998de381a4d14ededbb642f77b3275fbbb 192.168.1.128:7002
     slots: (0 slots) master
     replicates aa5ca621c042b3e96c18db3d7af17ec1f1bce22f
  M: 574a1ee8efa5cbf65e869a80e7a9fbed8efbf34a 192.168.1.129:7003
     slots:0-5460 (5461 slots) master
  M: aa5ca621c042b3e96c18db3d7af17ec1f1bce22f 192.168.1.129:7004
     slots:10923-16383 (5461 slots) master
  M: fdcd0fa6de5e4166a893e4b1dc7f4cef5f6d78ac 192.168.1.129:7005
     slots: (0 slots) master
     replicates 3bf938e2aa2aa67fb734a3d5d9d238f0c0263655
  [OK] All nodes agree about slots configuration.
  >>> Check for open slots...
  >>> Check slots coverage...
  [OK] All 16384 slots covered.                                                                   

6.集群验证

1) 在192.168.1.128服务器上连接7002端口节点

  cd /home/gilbert/app/redis-3.2.1
  redis-cli -h 192.168.1.128 -c -p 7002
  
  192.168.1.128:7002>

2)在192.168.1.129服务器上连接7005端口节点

  cd /home/gilbert/app/redis-3.2.1
  redis-cli -h 192.168.1.129 -c -p 7005
  
  192.168.1.129:7005> set hello word
  -> Redirected to slot [866] located at 192.168.1.129:7003
  OK
  192.168.1.129:7003> 

3) 在192.168.1.128服务器上命令窗口中获取key的内容,如可获取key为hello的内容为word,表明搭建成功

  
  192.168.1.128:7002> get hello
  -> Redirected to slot [866] located at 192.168.1.129:7003
  "word"
  192.168.1.129:7003> keys *
  1) "hello"
  192.168.1.129:7003>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值