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..tar.gz
[root@host software]# cd redis-4.0./
[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./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
[root@host redis-cluster]# mkdir
[root@host redis-cluster]# mkdir
[root@host redis-cluster]# mkdir
[root@host redis-cluster]# mkdir
[root@host redis-cluster]# mkdir [root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
[root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
[root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
[root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
[root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
[root@host redis-cluster]# cp /usr/software/redis-4.0./redis.conf /usr/software/redis-cluster//
以上命令是建立了6个节点,然后将单体的redis节点的配置文件复制到每个节点中,接下来我们就要用这些配置文件来配置集群了
2.2:修改配置文件
以下是最小的Redis群集配置文件,根据此我们需要修改每个配置文件中的这些属性:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
依次执行命令,修改每个配置文件
[root@host ]# 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..tar.gz
[root@host ruby-2.2.]# cd ruby-2.2.
[root@host ruby-2.2.]#./configure --prefix=/usr/local/ruby-2.2.
[root@host ruby-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./src
[root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf [root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf [root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf [root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf [root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf [root@host src]# ./redis-server /usr/software/redis-cluster//redis.conf
2.6.2:搭建redis集群
[root@host src]# /usr/software/redis-4.0./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
关于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是我们在编程开发中不可或缺的一个中间件,如何使用好它、管理好它、最大化它的性能都是我们需要探索的问题。而这些的第一步就是我们先亲自手动去搭建这样一个集群,并了解它的基本运行机制,在以后的编程工作中,才能更高的发挥它的优点。
redis搭建集群并用TreeSoft管理的更多相关文章
- redis搭建集群和主从
说明 Redis集群至少需要3个节点,来支持投票容错机制,每个节点都有从节点,所有最少是6个服务(3个主3个从) 因为集群内置了16384个slot(哈希槽),并且把所有的物理节点映射到了这16384 ...
- mac redis搭建集群
1.下载redis客户端 2.修改redis.conf文件 port 6379 //端口 daemonize yes cluster-enabled yes //打开集群 cluster-config ...
- Swarm 集群并用 Portainer 管理
https://blog.csdn.net/zhrq95/article/details/79430284 使用docker-proxy代理服务(所有节点): docker pull docker.i ...
- Redis搭建集群
- redis 一二事 - 搭建集群缓存服务器
在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有 ...
- 【redis】 redis 创建集群时,Waiting for the cluster to join.... 一直等待
redis 搭建集群时,一直join.... ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1: ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
- Redis 实战篇之搭建集群
Redis 集群简介# Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户 ...
随机推荐
- CentOS 下 MySQL 5.6 基于 RPM 的下载、安装、配置
CentOS 下 MySQL 5.6 基于 RPM 的下载.安装.配置 系统: CentOS 7 x86_64 MySQL 版本: 5.6.40 安装方式: RPM 下载 下载地址 操作系统 选择 R ...
- LeetCode-124.二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 / \ 2 ...
- 亚马逊中国耳机巨头Jabra官方旗舰店上线
日前,亚马逊中国(Z.cn)宣布,全球无线技术顶级领导品牌 Jabra (捷波朗)官方旗舰店正式上线,产品品类涵盖蓝牙耳机.音乐耳机.无线音箱和车载系列产品.Jabra 旗舰店上线伊始便汇集了 60 ...
- Planning The Expedition(暴力枚举+map迭代器)
Description Natasha is planning an expedition to Mars for nn people. One of the important tasks is t ...
- MyEclipse快捷方式
选择你要注释的那一行或多行代码,按Ctrl+/即可,取消注释也是选中之后按Ctrl+/即可. 如果你想使用的快捷键的注释是的话,那么你的快捷键是ctrl+shift+/我以前都是手动注释的,直接打// ...
- P4语法(4)Control block
Control block Control block之中用于放置设计好的Table和Action. 可以把control block认为是pipeline的一个模板,之前用的v1model中就是in ...
- IDEA + SSH OA 第一天(Hibernate : Mapping (RESOURCE) not found)
切入主题,看看今天的错误是如何发生的: 首先这是我的项目路径,java 是 Sources Root , resources 是 Resources Root ,放了所需要的配置文件,其中 Hiber ...
- B-2阶段组员分数分配
组名: 新蜂 组长: 武志远 组员: 宫成荣 谢孝淼 杨柳 李峤 项目名称: java俄罗斯方块 武 武 武 武 杨 宫 宫 杨 宫 谢 李 杨 李 谢 李 谢 李 谢 杨 宫 扬 谢 宫 李 武 评 ...
- webpack打包多html开发案例新
闲来无事在原来简单打包案例的基础上,参考vue-cli的打包代码,改为多文件打包. 区别于上篇文章<webpack打包多html开发案例>,此次打包根据开发的不同环节进行打包,也就是有开发 ...
- git因commit的记录太大导致push失败解决方法
发现好像这个方法不好使.......~~!还是会失败 如果有人或者自己失误把不该同步的大文件如数据或日志或其他中间文件给commit了并且push了,然后你删掉了,但是其实他仍然在你的git记录中,你 ...