摘抄并用于自己后查

单机版的配置: 

  1. 下载redis压缩包,然后解压缩文件(tar xzf);

  2. 进入解压后的redis文件目录,编译redis源文件(make,没有c环境要gcc);

  3. 把编译好的redis源文件安装到/usr/local/redis目录下,如果/local目录下没有redis目录,会自动新建redis目录;

  4. 进入/usr/local/redis/bin 目录,直接 ./redis-server启动redis(此时为前端启动redis);

  5. 将redis启动方式改为后端启动,具体做法:把解压缩的redis文件下的 redis.conf文件复制到/usr/local/redis/bin目录下,然后修改redis.conf文件 ->daemonize:no 改为yes

  6. 在/bin目录下通过./redis-server redis.conf启动redis (此为后台启动)

集群配置:

  一、Redis Cluster(Redis集群)简介

    1)redis3.0版本之前只支持单例模式,在3.0版本后才支持集群。

    2)redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点。

    3)redis集群是没有统一的入口,客户端连接集群时,连接的是集群中的任意节点即可,集群内部的节点是相互通信(PING-PONG机制),每个节点都是一个redis实例。

    4)为了实现集群的高可用,即判断节点是否能正常使用,redis-cluster有一个投票容错机制:如果集群中超过半数的节点投票认为某个节点挂了,那么这个节点就是挂了(fail),这是判断节点是否挂了的方法。

    5)那么如果判断集群是否挂了呢? -> 如果集群中任意一个节点挂了,而且该节点没有从节点(备份节点),那么这个集群就是挂了。这个是判断集群是否挂了的方法。

    6)为什么任一节点挂了集群就是挂了呢? -> 因为集群内置了16384个slot(哈希槽),并且把所有的物理节点映射到这个16384[0-16383]个slot上,或者说把这些slot均等分配给了各节点。当需要在redis集群存放一个数据(key-value)时,redis会先对这个key做crc16算法,然后得到一个结果。再把这个结果对16384进行取余,这个余数会对应[0-16383]其中一个槽,进而决定key-value存储到哪个节点。所以一旦某个节点挂了,该节点对应的slot就无法使用,那么就会导致集群无法正常工作。读取时,也是先对这个key做crc16和取余得到对应存放的节点。

    7)综上,每个redis集群理论上最多可以有16384个节点。

  二、集群搭建需要的环境

   1)redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了,该节点才是挂了,所以2个节点无法构成集群。

   2)要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以redis集群至少需要6台服务器。

  

  三、集群搭建具体步骤

  安装环境和版本:centos7 , redis5.0.5。redis版本在5之前的集群需要安装ruby环境(这很耗时间,且有各种问题需要解决),redis5.0.0之后已经将redis-trib.rb 脚本的功能全部集成到redis-cli之中了。本文基于redis-cli的-cluster来搭建集群。

  

  安装过程:

   1. 下载并解压(为方便直接从上面单机版的将文件夹拷贝过来)

  2. 编译安装:

    make && make install

   3.创建redis节点

    在 /opt/redis-cluster/redis-5.0.5 下创建 redis_cluster文件夹,同时在里面创建redis7001,redis7002,redis7003,redis7004,redis7005,redis7006文件夹,并将redis.cof文件夹分别复制到这6个文件夹内,分别修改这个6个配置文件,修改内容如下:

    port 7001       // 端口7001,7002,7003,7004,7005,7006

    bind 本机ip     //本地时192.168.80.131

    daemonize yes   // 设置redis后台运行

    pidfile /var/run/redis_7001.pid   // pidfile文件对应7001 ... 7006

    cluster-enable yes  // 开区集群,把注释去掉

    cluster-config-file nodes_7001.conf  // 集群的配置,配置文件首次启动自动生成

    cluster-node-timeout 15000  // 请求超时,默认15秒,可自行设置

    appendonly yes  // aof日志开启,有需要就开启,时间长了文件会很大

  4. 启动各节点:可以搞个批处理文件 startup.sh

    

    

  5. 检查redis启动情况

     ps -aux|grep redis

    netstat -tnlp|grep redis

    

    如果少了哪个,检查是否配置文件修改时出错

  6. 创建集群

     $ redis-cli --cluster create 192.168.80.131:7001 192.168.80.131:7002 192.168.80.131:7003 192.168.80.131:7004 192.168.80.131:7005 192.168.80.131:7006 --cluster-replicas 1

    

 

 --cluster-replicas 1 命令的意思是:一主一从配置,六个节点就是三主三从

  使用如下命令创建集群的状态:

  redis-cli --cluster check 192.168.80.131:7001  #填写任意节点即可

  

  

Redis单机和集群配置(版本在5.0后)的更多相关文章

  1. java:redis(redis安装配置,redis的伪集群配置)

    1.redis安装配置: .安装gcc : yum install gcc-c++ .使用FTP工具FileZilla上传redis安装包到linux根目录下(当前步骤可以替换为:在root目录下执行 ...

  2. 基于redis的cas集群配置(转)

    1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...

  3. 基于redis的cas集群配置

    1.cas ticket统一存储 做cas集群首先需要将ticket拿出来,做统一存储,以便每个节点访问到的数据一致.官方提供基于memcached的方案,由于项目需要,需要做计入redis,根据官方 ...

  4. springboot整合redis单机及集群

    一.单机配置 properties配置 #单机redis spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.passwor ...

  5. redis:哨兵集群配置

    最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...

  6. spring + spring-data-redist + Redis 单机、集群(cluster模式,哨兵模式)

    一.单机redis配置 1. 配置redis连接池 <bean id="jedisPoolConfig" class="redis.clients.jedis.Je ...

  7. CentOS7 配置 Redis Sentinel主从集群配置

    Redis Sentinel主从集群 环境.准备 slave配置 sentinel配置 测试 C#连接Redis Sentinel 1.环境.准备 单实例3台CentOS7服务器,IP地址.: 192 ...

  8. redis学习五 集群配置

    redis集群配置 0,整体概述      整体来说就是:      1,安装redis      2,配置多个redis实例      3,安装 ruby和rubygems      4,启动red ...

  9. ssh 免密码登录 单机和集群配置

    1.在主机上(A)生成密钥对 ssh-keygen -t rsa -P '' #在A主机上执行,生成密钥对 直接按enter键 执行以下命令,会在  ~/.ssh/ 目录生成 id_rsa  id_r ...

随机推荐

  1. NX-二次开发删除对象UF_OBJ_delete_object

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_obj.h> UF_initialize ...

  2. electron-vue构建桌面应用

    一.项目搭建 electron-vue是vue-cli和electron结合的项目,比单独使用vue构建起的electron项目要方便很多. 1.初始化项目并运行 vue init simulated ...

  3. SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧

    SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...

  4. How to Add Swap on CentOS

    About Linux Swapping Linux RAM is composed of chunks of memory called pages. To free up pages of RAM ...

  5. 剑指offer——14机器人的运动范围

    题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人能 ...

  6. spark自定义函数之——UDAF使用详解及代码示例

    UDAF简介 UDAF(User Defined Aggregate Function)即用户定义的聚合函数,聚合函数和普通函数的区别是什么呢,普通函数是接受一行输入产生一个输出,聚合函数是接受一组( ...

  7. .net 超链接传值,传过去始终是null

    今天做了一个删除功能,通过点击列表中的删除超链接,通过get请求,跳转到一个处理程序执行删除操作 . 因为不熟悉各种报错 , <%="<td> <a class='d ...

  8. Nginx配置web服务

    Nginx配置虚拟主机 虚拟主机概述 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可以是IP或者端口),具有独立的程序及资源目录,可以独立的对外提供服务,继而给用户访 ...

  9. flink支持的数据类型讲解(可序列化) 和 内置累加器的运用

    flink支持的数据类型Flink对DataSet和DataStream中可使用的类型加了一些约束.原因是系统可以通过分析这些类型来确定有效的执行策略和选择不同的序列化方式.有7种不同的数据类型:1. ...

  10. 关于js私钥加密公钥解密的问题

    博客荒废很久了,最近遇到一个问题,看网上的说明比较少,所以写下来给大家一个参考 一般来说rsa算法都是使用公钥加密,私钥解密,或者私钥签名,公钥验签.但总有特别的时候会想要用私钥加密,公钥解密,但是j ...