设为首页 加入收藏

TOP

linux redis搭建
2019-05-11 02:34:36 】 浏览:52
Tags:linux redis 搭建

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>

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Singleton之C++部分一 下一篇Flume使用大全之kafka source-kaf..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目