zoukankan      html  css  js  c++  java
  • Redis环境搭建(整合SprinigBoot一键切换集群和单机环境)

    Redis介绍

    Redis使用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,常用数据类型如下:

    • 字符串类型
    • 散列类型
    • 列表类型
    • 集合类型
    • 有序集合类型

    本文采用环境:CentOS7、Redis3.0.0版本演示

    Redis的应用场景

    • 实现应用缓存(不经常更换的内容)
    • 网站访问统计
    • 结合lua实现接口频率访问控制
    • 实现分布式锁

    单机版本安装

    安装reids需要先将官网下载的源码进行编译,编译环境依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

    Redis中文官网:http://www.redis.cn
    源码包下载:http://download.redis.io/releases/redis-3.0.0.tar.gz

    1. 将reids-3.0.0.tar.gz拷贝到/usr/local下
    2. 解压源码 tar -zxvf reids-3.0.0.tar.gz
    3. 进入解压后目录编译 cd /usr/local/redis-3.0.0 & make
    4. 安装到指定的目录:如 /usr/local/redis,cd /usr/local/redis-3.0.0 & make PREFIX=/usr/local/redis install
    5. 找到源码包中redis.conf文件,该文件是redis的配置文件。默认端口为port=6379
    6. 拷贝到安装目录下 cp 源码包下的redis.conf /usr/local/redis/bin
    7. 启动方式分为两种,前端启动和后端启动
      前端启动:进入到/usr/local/redis/bin目录下,./redis-server即可启动
      后端启动:需要修改redis.conf配置文件中的daemonize yes未后端模式启动。命令:cd /usr/local/redis/bin ./redis-server ./redis.conf
    8. reids关闭命令:cd /usr/local/redis/bin ./redis-cli shutdown

    集群版本安装

    原理不做讲解:可参考淘淘redis集群原理。讲解的非常清楚。本文部分环境安装介绍来源于淘淘。

    1. redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境
      安装ruby yum install ruby & yum install rubygems
    2. 安装ruby和redis的接口程序。将下载好的reids-3.0.0.gem(需提前进行下载)拷贝到/usr/local下
      执行:gem install /usr/local/reids-3.0.0.gem
    3. 集群节点规划
      这里实现的是伪集群,用不同的端口号表示不同的节点。如下:
      主节点:192.168.15.130:7001 192.168.15.130:7002 192.168.15.130:7003
      从节点:192.168.15.130:7004 192.168.15.130:7005 192.168.15.130:7006
    4. 在/usr/local下创建redis-cluster目录,其下创建7001、7002...7006目录。
    5. 将redis安装目录bin下的文件拷贝到每个700x目录内,同事将redis源码目录src下的redis-trib.rb文件拷贝到redis-clulster目录下。(如果有rdb或者dump文件,请先删除,在拷贝到700x目录,否则启动失败)
    6. 修改每个700x目录下的reids.conf配置文件:
      port xxxx
      cluster-enabled yes
    7. 配置好以上内容。分别进入7001、7002...7006目录下:执行./redis-server ./redis.conf 也可以编写shell脚本一键启动。分别启动完毕后(使用ps aux|grep redis)查看启动进程
    8. 执行redis-trib.rb,此脚本是ruby脚本,需要依赖ruby环境,在前文中已安装过。
      cd /usr/local/redis-cluster目录下执行:
      ./redis-trib.rb create --replicas 1 192.168.15.130:7001 192.168.15.130:7002 192.168.15.130:7003 192.168.15.130:7004 192.168.15.130:7005 192.168.15.130:7006执行创建集群命令
      对以上命令说明:reids集群至少3个主节点,每个主节点有一个从节点共6个节点。
      replicas指定为1,表示每个主节点有一个从节点。
    9. 集群创建成功登陆任意redis节点查询集群中的节点情况
      客户端已集群方式登陆:./redis-cli -c -h 192.168.15.130:7002 & cluster nodes
      其中-c表示以集群方式连接redis,-h 指定ip地址,-p指定端口号。cluster nodes查询集群节点信息,cluster-info查询集群状态信息
    10. 至此集群搭建成功。
    11. 可添加主节点:
      集群创建成功后可以向集群中添加节点,下面是添加一个master主节点。添加7007节点,参考集群节点规划。添加一个7007目录作为新节点。
      执行以下命令:./redis-trib.rb add-node 192.168.15.130:7007 192.168.15.130:7001
      查看集群状态 cluster nodes
      添加主节点。第一个ip为新添加节点ip,第二个ip为主节点任意一个ip地址
    12. hash槽重新分配
      添加完主节点需要对主节点进行hash槽分贝,这样改主节点才可以存储数据。redis集群有16384个槽,集群中的每个节点分配自己槽,通过查看集群节点可以看到槽占用情况:cluster nodes
      给刚添加的7007节点分配槽:
    • 连接上集群:./redis-trib-rb reshard 192.168.15.130:7001(连接集群中任意一个节点都行)
    • 输入分配的槽数量
    • 输入接收槽的节点:通过cluster nodes查看7007节点id。
    • 输入源节点id。输入源节点id,槽将从源节点中拿,分配后的槽在源节点中就不存在了,输入all从所有源节点中获取槽,输入done取消分配。
    • 输入yes开始移动槽到目标节点id
    1. 添加从节点:集群创建成功后可以向集群中添加节点,下面是添加一个slave从节点。添加节点7008从节点,将7008作为7007的从节点。
      ./redis-trib.rb add-node --slave --master-id 主节点id 添加节点的ip和端口 集群中已存在的节点ip和端口
      执行如下命令:./redis-trib.rb add-node --slave --master-id 主节点id 192.168.15.130:7008 192.168.15.130:7001
      主节点id为7007节点id。可通过cluster nodes查看

    代码:SpringBoot+Redis整合代码地址,可一键切换单机、集群环境。(https://gitee.com/enthusiasts/redis-spring-boot-starter)
    个人gitee:https://gitee.com/enthusiasts

    充满鲜花的世界到底在哪里
  • 相关阅读:
    Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
    IDEA配置Tomcat
    Tomcat【介绍Tomcat、结构目录、虚拟目录、临时域名、虚拟主机、体系结构】
    Mysql免安装版配置【图文版和文字版】
    JDBC第四篇--【数据库连接池、DbUtils框架、分页】
    JDBC第三篇--【事务、元数据、改造JDBC工具类】
    JDBC第二篇--【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】
    JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
    DTD
    第五周项目2-对象作为数据成员
  • 原文地址:https://www.cnblogs.com/aliases/p/12682698.html
Copyright © 2011-2022 走看看