• redis搭建集群并用TreeSoft管理


         前言:redis作为一款高效的NOSQL数据库已经深入贯彻和落实到我们的日常开发代码中,作为缓存、时间控制、数据仓库、队列等使用方法层出不穷,简直是开写代码、居家旅行之必备良药。曾经,我们的项目都是单体的,直到后来逐渐演变为微服务—— 一个将我们的工程解耦成多个工程的体系。然后随着我们项目的访问量越来越高,后台的吞吐量也越来越大。如果我们还采用的单体redis,性能很容易形成瓶颈。如何突破单体redis带来的功能受限?如何突破性能带来的问题?这时我们就可以考虑横向扩展,搭建redis集群。正所谓:众人拾柴火焰高,原来一颗小火柴不足以照亮整个房子,一旦人多了,火柴多了,那么散发出来的火焰就会更亮、更热,集群其实就是这个道理,更多的服务器参与工作就会摆脱单体应用带来的性能上的局限。本篇博客就来从零开始搭建一个redis集群。注:本篇博客搭建的redis集群采用的linux服务器是centos6.5,redis版本是4.0.6,因为没有多台服务器,所以采用的是一台服务器模拟安装多个redis节点的方式搭建服务器;

    本篇博客的目录

    一:准备

    二:搭建redis集群

    三:使用Treesoft管理

    四:总结

    正文

    一:准备

    1.1:安装单体redis

     首先下载redis的安装包,然后解压、 编译,依次执行以下指令:

    
    
    [root@host /]# mkdir /usr/software/ 
    [root@host software]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz 
    [root@host software]# tar -xzvf redis-4.0.6.tar.gz
    [root@host software]#  cd redis-4.0.6/
    [root@host redis-4.0.6]# make && install 

    简单解释一下以上命令,首先创建一个redis的目录,然后下载redis4.0.6版本,再解压,然后编译安装,安装完之后的样子大概如下:

    redis默认是非守护模式,也就是无法在后台运行,我们需要把其默认的属性给修改了,依次执行以下命令:

    
    
    [root@host redis-4.0.6]# vi /usr/software/redis-4.0.6/redis.conf  no-->yes

    上面的命令是用vi修改redis的配置文件中的守护模式,将其由关闭模式改为开启,开启以后我们就可以在后台运行redis了

    在后台启动运行redis

    [root@host src]#  ./redis-server ../redis.conf

    成功启动redis的会出现以下画面:

    然后我们再以客户端方式运行:redis-cli

    可以看到redis已经在运行了,并且我们做了一个简单的测试set一个name值,然后再get这个name值。可以看到程序正常运行。

    二:搭建redis集群

    2.1:复制配置文件到多个redis

    之前有提到我们的服务器资源有限,所以将采用的是一台服务器安装多个redis节点的方式。再具体到安装过程,那就是采用多配置文件的方式,将每个配置文件配置成不同的端口号和目录等,然后依次启动,使用redis-trib来管理这个集群。

    首先我们需要先创建一个redis集群文件夹,起名redis-cluster,然后准备6个节点,复制配置文件到这个文件夹里面:

    [root@host software]# mkdir redis-cluster
    [root@host redis-cluster]# mkdir 6001
    [root@host redis-cluster]# mkdir 6002
    [root@host redis-cluster]# mkdir 6003
    [root@host redis-cluster]# mkdir 6004
    [root@host redis-cluster]# mkdir 6005
    [root@host redis-cluster]# mkdir 6006
    
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6001/
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6002/
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6003/
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6004/
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6005/
    [root@host redis-cluster]# cp /usr/software/redis-4.0.6/redis.conf /usr/software/redis-cluster/6006/

     以上命令是建立了6个节点,然后将单体的redis节点的配置文件复制到每个节点中,接下来我们就要用这些配置文件来配置集群了

    2.2:修改配置文件

    以下是最小的Redis群集配置文件,根据此我们需要修改每个配置文件中的这些属性:

    port 7000
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes

    依次执行命令,修改每个配置文件

    [root@host 6001]# vi redis.conf 

    ①修改端口号,这里和我们配置的端口号保持一致:

    ②修改appendonly为yes。这里修改为yes的含义表示是开启redis的aof持久化策略,开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬盘中的AOF文件。AOF文件的保存位置默认的文件名是appendonly.aof(备注说明:redis还有另外一种持久化策略为:rdb,相当于保存数据快照,可以在配置文件中自定义同步更新时间!)

    ③开启cluster-enabled 为yes,即为开启集群模式

     

    ④修改集群节点为当前配置文件的conf文件

    ⑤:修改超时时间为5000ms,原来为15000.

    (用vi修改完记得用切记vi命令保存:wq!)

    2.3:配置多个redis

    按照2.2中给出的步骤,依次配置6个节点,注意节点、conf每个配置的不同

    2.4:安装ruby

    因为redis的集群管理工具需要用到ruby,接下来我们需要安装ruby依赖库:

    这里我们不采用yum安装,因为yum安装的ruby默认版本号是1.9。而redis的集群管理工具trib的最小ruby版本号要求是2.2.2.(版本低于2.2.2会无法启动)所以我们采用手动的方式安装ruby

    依次执行一下命令

    [root@host software]# mkdir ruby
    [root@host ruby]# wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
    [root@host ruby]# tar xf ruby-2.2.2.tar.gz
    [root@host ruby-2.2.2]# cd ruby-2.2.2 
    [root@host ruby-2.2.2]#./configure --prefix=/usr/local/ruby-2.2.2
    [root@host ruby-2.2.2]# make && make install

    然后查看ruby版本号。如果出现的是2.2.2就表示成功了

    2.5:安装gem redis

    [root@host ~]# yum install rubygems
    [root@host ruby]# gem install redis

    2.6使用redis-trib启动集群

    2.6.1 依次启动redis节点

    [root@host src]#   cd /usr/software/redis-4.0.6/src
    [root@host src]#   ./redis-server  /usr/software/redis-cluster/6001/redis.conf
    
    [root@host src]#   ./redis-server  /usr/software/redis-cluster/6002/redis.conf
    
    [root@host src]#   ./redis-server  /usr/software/redis-cluster/6003/redis.conf
    
    [root@host src]#  ./redis-server  /usr/software/redis-cluster/6004/redis.conf
    
    [root@host src]#  ./redis-server  /usr/software/redis-cluster/6005/redis.conf
    
    [root@host src]#   ./redis-server  /usr/software/redis-cluster/6006/redis.conf

    2.6.2:搭建redis集群

    [root@host src]#  /usr/software/redis-4.0.6/src/redis-trib.rb create --replicas 1   127.0.0.1:6001 127.0.0.1:6002  127.0.0.1:6003  127.0.0.1:6004  127.0.0.1:6005  127.0.0.1:6006

    三:安装TreeSoft界面化管理工具

    3.1:测试redis集群

    首先我们用redis客户端启动一个节点,可以看出redis将值重定向到节点6002上面去了

    [root@host src]# ./redis-cli -c -h 127.0.0.1 -p 6001

     关于redis的集群分片问题:

    这段描述表示了redis的集群是如何工作的,通过将节点进行划分不同的hash槽来实现数据的存储,每次当进行set值的时候,redis集群会对键进行crc16的算法校验,然后再取模,这样可以保证键可以落在16384范围中的某一个点上。然后再取不同的范围,定位到具体的节点上,这种结构的伸缩兴比较好,会避免删除或者增加节点的时候导致集群不可用。

    3.2:安装treeSoft

    3.2.1:简介 treesoft是redis的一个界面化管理工具,可以通过它来查看redis的key和vlaue的集合,进行简单配置就可以,界面简单操作方便,因此我们来安装一下treeSoft:

    首先必须得安装tomcat(7.0+)、jdk(1.7+),然后下载treesoft,下载地址:http://www.treesoft.cn/dms.html。

    下载之后解压,然后将treenms放入到tomcat到webapps目录下,再启动tomcat,我的目录是:/usr/software/tomcat/apache-tomcat-7.0.92/webapps/treenms

    就可以运行了

    注:因为篇幅原因,本篇博客不介绍安装tomcat、jdk的详细教程,不会的同学可以自行google

    3.2.2:treesoft管理

    启动tomcat,然后访问treesoft

    访问地址:http://176.122.132.220:8070/treenms/treesoft/index,就可以看到下面的界面了,并且可以对键进行添加、删除、修改工作、刷新等操作,很方便。只需要在右上角进行简单的配置就可以了

    可以看到界面干净清爽,可以随意切换集群中的节点(6001、6002等)

    四:总结

     本篇博客讲述了redis如何搭建集群,以及redis集群的基本运行原理,还有后来的使用treesoft进行管理集群,redis是我们在编程开发中不可或缺的一个中间件,如何使用好它、管理好它、最大化它的性能都是我们需要探索的问题。而这些的第一步就是我们先亲自手动去搭建这样一个集群,并了解它的基本运行机制,在以后的编程工作中,才能更高的发挥它的优点。

  • 相关阅读:
    OCP-1Z0-051-V9.02-80题
    OCP-1Z0-051-V9.02-124题
    Flex中的HDividedBox和VDividedBox的比较
    Flex中AdvancedDataGrid的用法
    IDA,很好很强大
    AndroidManifest.xml文件中加入文件控制控制权限
    OCP-1Z0-051-V9.02-6题
    OCP-1Z0-051-V9.02-5题
    OCP-1Z0-051-V9.02-4题
    Android Eclipse JNI 调用 .so文件加载问题
  • 原文地址:https://www.cnblogs.com/wyq178/p/10340234.html
Copyright © 2020-2023  润新知