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

    充满鲜花的世界到底在哪里
  • 相关阅读:
    mysql报错:java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    MD5登陆密码的生成
    15. 3Sum、16. 3Sum Closest和18. 4Sum
    11. Container With Most Water
    8. String to Integer (atoi)
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    几种非线性激活函数介绍
    AI初探1
    AI初探
  • 原文地址:https://www.cnblogs.com/aliases/p/12682698.html
Copyright © 2011-2022 走看看