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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux Redis集群搭建是指在Linux操作系统上搭建Redis集群,以实现高可用性和负载均衡。Redis集群是由多个Redis节点组成的分布式系统,每个节点都可以存储数据,并且可以通过复制和分片等技术来实现数据的高可用性和负载均衡。要搭建Redis集群,需要先安装Redis,并配置节点之间的通信和数据同步。然后,使用Redis-trib工具来创建集群,并将数据分片到不同的节点上。最后,可以通过客户端来访问Redis集群,实现数据的读写和查询等操作。 ### 回答2: Redis是一种高性能的开源内存键值数据库,被广泛运用于数据缓存、消息传递、任务调度等领域。然而,在高并发业务场景下,单机Redis可能无法满足业务需求。为了解决这个问题,可以搭建Redis集群,通过分布式机制提高系统性能和可靠性。 本文主要讲述如何使用Docker Compose和Redis官方的Redis Cluster来搭建Redis集群的过程。具体步骤如下: 1.准备环境 首先需要安装Docker和Docker Compose,并保证版本相对较新。然后在本地创建一个目录,用于存放我们的Redis集群配置和数据文件。 2.创建Redis配置文件 在新建的目录中创建一个redis.conf文件,并在其中添加Redis节点的配置信息。其中,每个节点的配置文件应该保证以下信息一致:端口号、IP地址、集群名称、初始集群节点等。例如: # 节点1的配置 port 7000 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes # 节点2的配置 port 7001 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes ...... 3.创建Docker Compose文件 在新建的目录中创建一个docker-compose.yml文件,用于定义Redis容器的构建和运行过程。其中,我们需要定义每个Redis节点的服务名称、容器信息、挂载目录、环境变量等信息。例如: version: '3' services: redis-1: image: redis command: redis-server /usr/local/etc/redis/redis.conf ports: - "7000:7000" volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf - ./data/redis-1:/data environment: - REDIS_PORT=7000 - REDIS_CLUSTER_ENABLED=true - REDIS_CLUSTER_CONFIG_FILE=/data/nodes.conf - REDIS_CLUSTER_NODE_TIMEOUT=5000 - REDIS_APPENDONLY=yes redis-2: image: redis command: redis-server /usr/local/etc/redis/redis.conf ports: - "7001:7001" volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf - ./data/redis-2:/data environment: - REDIS_PORT=7001 - REDIS_CLUSTER_ENABLED=true - REDIS_CLUSTER_CONFIG_FILE=/data/nodes.conf - REDIS_CLUSTER_NODE_TIMEOUT=5000 - REDIS_APPENDONLY=yes ...... 4.启动Redis集群 执行docker-compose up命令来启动Redis集群。在完成后,可以使用redis-cli命令来连接集群,进行测试和验证。 5.扩容Redis集群 如果需要扩容Redis集群,只需要在docker-compose.yml文件中添加新的Redis服务信息,并在原有Redis节点中执行cluster addslots命令进行分槽。例如: # 添加新的节点 services: redis-3: image: redis command: redis-server /usr/local/etc/redis/redis.conf ports: - "7002:7002" volumes: - ./redis.conf:/usr/local/etc/redis/redis.conf - ./data/redis-3:/data environment: - REDIS_PORT=7002 - REDIS_CLUSTER_ENABLED=true - REDIS_CLUSTER_CONFIG_FILE=/data/nodes.conf - REDIS_CLUSTER_NODE_TIMEOUT=5000 - REDIS_APPENDONLY=yes # 在旧的节点中执行分槽命令 docker exec -it redis-1 redis-cli cluster addslots {16384...32767} cluster rebalance 以上就是利用Docker Compose和Redis官方的Redis Cluster搭建Redis集群的整个过程。通过分布式机制,可以将请求分摊到多个节点,提高系统性能和可靠性,为高并发业务场景下Redis提供了一种有效的解决方案。 ### 回答3: Redis作为一款高性能的Key-Value存储系统,被广泛应用于缓存、数据统计和聊天室等应用场景。在数据量较大的情况下,单机Redis性能无法满足需求,这时可以通过Redis集群搭建提高系统性能和容错能力。 搭建Redis集群一般需要满足以下条件: • Redis版本为3.0及以上 • 需要至少3个Redis节点 • Redis节点与Redis节点之间可以互相通信 搭建Redis集群主要分为以下四个步骤: 1. 安装Redis 首先需要在每个节点上安装Redis,可以通过apt或yum等方式安装。安装完成后,修改每个节点的配置文件redis.conf,添加以下配置项: # cluster-enabled yes # cluster-config-file nodes-6379.conf # cluster-node-timeout 5000 其中cluster-enabled用于启用Redis集群,cluster-config-file用于指定节点配置文件的存储路径,cluster-node-timeout用于指定节点互相通信的超时时间。 2. 创建Redis集群 在任意一个节点上,通过redis-cli工具创建Redis集群,可以使用如下命令: redis-cli --cluster create node1:6379 node2:6379 node3:6379 其中node1、node2、node3为每个节点的主机名,6379为Redis端口号。执行命令后,系统会自动执行数据迁移,并将集群信息存储在节点配置文件中。 3. 添加节点 如果需要扩容Redis集群,可以通过如下命令添加新的节点: redis-cli --cluster add-node new_node:6379 existing_node:6379 其中new_node为新节点主机名,6379为新节点端口号,existing_node为现有节点的主机名和端口号。添加节点后,系统会自动进行数据迁移和负载均衡。 4. 删除节点 如果需要删除Redis集群中的节点,可以通过如下命令删除: redis-cli --cluster del-node node:6379 其中node为需要删除的节点主机名,6379为节点端口号。删除节点后,系统会自动进行数据迁移和负载均衡。 总之,通过Redis集群搭建可以提高系统的性能和容错能力,但也需要注意节点之间的通信、数据迁移和负载均衡等问题,以保证集群的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值