Redis单机和集群环境搭建

一、安装单机版redis

1、可以自己去官网下载,当然也可以用课程提供的压缩包

# yum install gcc
# wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
# tar -xzvf tcl8.6.1-src.tar.gz
# cd  /usr/local/tcl8.6.1/unix/
# ./configure
# make && make install

2、使用redis-3.2.8.tar.gz(稳定版)

# tar -zxvf redis-3.2.8.tar.gz
# cd /usr/local/redis-3.2.8
# make
# make test
# make install

3、redis的生产环境启动方案(1)redis utils目录下,有个redis_init_script脚本
(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
(3)修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
(4)创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
(5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf
(6)修改redis.conf中的部分配置为生产环境

daemonize    yes                            #让redis以daemon进程运行
pidfile      /var/run/redis_6379.pid        #设置redis的pid文件位置
port        6379                           #设置redis的监听端口号
dir         /var/redis/6379                 #设置持久化文件的存储位置

(7)启动redis,执行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start

(8)确认redis进程是否启动,ps -ef | grep redis

(9)让redis跟随系统启动自动启动

在redis_6379脚本中,最上面,加入两行注释

# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

chkconfig redis_6379 on

4、redis cli的使用

redis-cli SHUTDOWN                                  #连接本机的6379端口停止redis进程
redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN         #制定要连接的ip和端口号
redis-cli PING                                      #ping redis的端口,看是否正常
redis-cli                                           #进入交互式命令行

SET k1 v1
GET k1

二、Redis集群(读写分离+高可用+多master)

1、redis cluster的重要配置

cluster-enabled <yes/no>

  cluster-config-file <filename>:这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下限,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的

  cluster-node-timeout <milliseconds>:节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

2、在三台机器上启动6个redis实例

(1)在eshop-cache03上部署目录

  /etc/redis(存放redis的配置文件);

  /var/redis/6379(存放redis的持久化文件)

(2)编写配置文件

redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave,最少的要求

正式环境下,建议都是说在6台机器上去搭建,至少3台机器

保证,每个master都跟自己的slave不在同一台机器上,如果是6台自然更好,一个master+一个slave就死了

3、台机器去搭建6个redis实例的redis cluster

# mkdir -p /etc/redis-cluster
# mkdir -p /var/log/redis
# mkdir -p /var/redis/7001

.conf配置文件:

port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize    yes
pidfile        /var/run/redis_7001.pid
dir         /var/redis/7001
logfile /var/log/redis/7001.log
bind 192.168.31.187
appendonly yes

  至少要用3个master节点启动,每个master加一个slave节点,先选择6个节点,启动6个实例

  将上面的配置文件,在/etc/redis下放6个,分别为: 7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

(3)准备生产环境的启动脚本

  在/etc/init.d下,放6个启动脚本,分别为: redis_7001, redis_7002, redis_7003, redis_7004, redis_7005, redis_7006

  每个启动脚本内,都修改对应的端口号

(4)分别在3台机器上,启动6个redis实例

将每个配置文件中的slaveof给删除

3、创建集群

# yum install -y ruby
# yum install -y rubygems# gem install redis

 3.1、在执行 gem install redis时候,出现
    ERROR:  Error installing redis:
        redis requires Ruby version >= 2.2.2.
 这是由于linux本身默认的ruby版本过低

    # sudo yum install curl
    # curl -L get.rvm.io | bash -s stable
    # source /usr/local/rvm/scripts/rvm
    # rvm list known
    # rvm install 2.5.1
    # rvm use 2.5.1
    # rvm use 2.5.1 --default

  3.2、执行中出现:[curl: (35) SSL connect error
  解决方法:升级网络安全服务即可。

# yum update nss # cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin

# redis-trib.rb create --replicas 1 192.168.51.118:7001 192.168.51.118:7002 192.168.51.119:7003 192.168.51.119:7004 192.168.51.120:7005 192.168.51.120:7006>>> Creating cluster[ERR] Sorry, can‘t connect to node 192.168.51.119:7003

出现这个error,是由于防火墙导致,此时,关闭防火墙的方法为:

  3.3、永久性生效

开启:chkconfig iptables on

关闭:chkconfig iptables off

  3.4、 即时生效,重启后失效

开启:service iptables start

关闭:service iptables stop

--replicas: 每个master有几个slave

6台机器,3个master,3个slave,尽量自己让master和slave不在一台机器上

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.51.118:7001
192.168.51.119:7003
192.168.51.120:7005
Adding replica 192.168.51.119:7004 to 192.168.51.118:7001
Adding replica 192.168.51.118:7002 to 192.168.51.119:7003
Adding replica 192.168.51.120:7006 to 192.168.51.120:7005
M: c929af23011ce7e6888721845d1d300196c3046f 192.168.51.118:7001
   slots:0-5460 (5461 slots) master
S: 60643541639fa838a23708027dfd8f05084fa0bb 192.168.51.118:7002
   replicates c330af95e5053ead51943d17b7ede77ff26e357c
M: c330af95e5053ead51943d17b7ede77ff26e357c 192.168.51.119:7003
   slots:5461-10922 (5462 slots) master
S: bde24d208a5c42771348bbedb2351f0b7ef9c06a 192.168.51.119:7004
   replicates c929af23011ce7e6888721845d1d300196c3046f
M: 422632826b23edf928d213e980ea0680b1a15ac0 192.168.51.120:7005
   slots:10923-16383 (5461 slots) master
S: 1e242b9cd55bd702dd386ed3d74916ad6fb78a10 192.168.51.120:7006
   replicates 422632826b23edf928d213e980ea0680b1a15ac0
Can I set the above configuration? (type ‘yes‘ to accept): yes

redis-trib.rb check 192.168.31.187:7001

4、读写分离+高可用+多master

读写分离:每个master都有一个slave
高可用:master宕机,slave自动被切换过去
多master:横向扩容支持更大数据量

原文地址:https://www.cnblogs.com/Chi-Sophia/p/9886545.html

时间: 2024-10-06 14:16:50

Redis单机和集群环境搭建的相关文章

Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建

[TOC] Redis笔记整理(二):Java API使用与Redis分布式集群环境搭建 Redis Java API使用(一):单机版本Redis API使用 Redis的Java API通过Jedis来进行操作,因此首先需要Jedis的第三方库,因为使用的是Maven工程,所以先给出Jedis的依赖: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactI

Redis之集群环境搭建

原文:Redis之集群环境搭建 前面文章介绍了Redis的主从复制,虽然该模式能够在一定程度上提高系统的稳定性,但是在数据访问量比较大的情况下,单个master应付起来还是比较吃力的,这时我们可以考虑将redis集群部署,本文就来重点给大家介绍下Redis的集群部署操作. Redis之主从复制2 Redis之主从复制1 Redis集群 一.Redis集群相关概念 1.Redis集群介绍 Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的

Redis中sentinel集群的搭建和Jedis测试 图文教程[三]

在前两篇Redis中sentinel集群的搭建和Jedis测试 图文教程[一] 和Redis中sentinel集群的搭建和Jedis测试 图文教程[二] 中分别简述了Redis中sentinel集群的搭建和Java代码的Jedis测试. 这篇主要来简单分析一下Redis-sentinel集群的原理,根据追踪sentinel信息来完成Redis-sentinel集群测试中的详细的原理分析.包括master-slave各个中的sentinel信息的分析,failover过程,master宕机后的le

Weblogic 12c 集群环境搭建

注:本文来源为:<Weblogic 12c 集群环境搭建> 一:环境说明 本文是在windows7操作系统下配置的,jdk版本1.8 ,weblogic版本12.1.3.0.0. 二:搭建集群前的规划 其中AdminServer是总控制端,server1.server2.server3是集群中的三个服务节点. 其中Adminserver也叫做管理服务器,server1-3叫做托管服务器. 三:环境搭建 1.创建管理服务器AdminServer. AdminServer作为weblogic集群的

Storm 系列(四)—— Storm 集群环境搭建

一.集群规划 这里搭建一个 3 节点的 Storm 集群:三台主机上均部署 Supervisor 和 LogViewer 服务.同时为了保证高可用,除了在 hadoop001 上部署主 Nimbus 服务外,还在 hadoop002 上部署备用的 Nimbus 服务.Nimbus 服务由 Zookeeper 集群进行协调管理,如果主 Nimbus 不可用,则备用 Nimbus 会成为新的主 Nimbus. 二.前置条件 Storm 运行依赖于 Java 7+ 和 Python 2.6.6 +,所

项目进阶 之 集群环境搭建(三)多管理节点MySQL集群

上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点MySQL集群和多管理节点MySQL集群 上一篇的博客中,我们搭建的MySQL集群架构中,只存在一个管理节点,这样搭建的集群可以用如下所示的结构表示. 仔细分析上图就会发现,上图所示的单管理节点MySQL集群存在当唯一的管理节点由于网络.断电.压力过大等各种原因宕机后,数据节点和SQL节点将会各自为

Nginx1.7.4+Tomcat7+memcached集群环境搭建

这几天研究了一下Nginx和tomcat的集群环境搭建,同时支持HTTP请求和HTTPS请求,研究了一下,整理一下,分享给大家.还是有很多不足的地方,大家发现问题,希望多多指正.话不多说,上代码~ 因为研究的条件有限,我是在本机上搭建两个Tomcat进行模拟的. 一.环境准备 1.Tomcat7:http://tomcat.apache.org/download-70.cgi 2.Nginx1.7.4:http://nginx.org/en/download.html 3.Memcached:h

[转]ZooKeeper 集群环境搭建 (本机3个节点)

ZooKeeper 集群环境搭建 (本机3个节点) 是一个简单的分布式同步数据库(或者是小文件系统) --------------------------------------------------------1.建立目录server1server1/dataDirserver1/dataLogDirserver1/logsserver1/zookeeper3.4.6 server2server2/dataDirserver2/dataLogDirserver2/logsserver2/zo

solr集群环境搭建

Solr集群环境搭建 一.     准备 1.     下载: solr-4.4.0.zip   solr安装包 apache-tomcat-7.0.47.tar.gz  tomcat安装包 2.     说明: 其中集群环境采用nginx做分发(也可以使用apache),nginx的安装这里不再介绍.我们共有四台机器,分别如下 10.10.42.164 10.10.42.165 10.10.42.166 10.10.42.167 其中10.10.42.164作为主节点安装nginx,solr