在redhat6.4安装redis集群【教程】

  参考:

  http://redis.io/topics/cluster-tutorial(主要是Creating a Redis Cluster using the create-cluster script部分)

  https://ruby.taobao.org/

  安装一款不熟悉的软件前先看INSTALL,README,这是习惯,生产上要建立普通用户并调节适当参数,下面是以root身份安装运行.

  下载解压并安装redis

  make test提示需要更高版本的tcl,跳到安装过程可能遇到的问题

  

wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar xf redis-3.0.7.tar.gz
cd redis-3.0.7
mkdir -p /opt/redis
make test
make PREFIX=/opt/redis install

  复制两个脚本到安装的目录

 

 cp ~/redis-3.0.7/src/redis-trib.rb /opt/redis/

  cp ~/redis-3.0.7/utils/create-cluster/create-cluster /opt/redis/1212

 

  根据实际修改/opt/redis/create-cluster.改动的地方有几处

  a.增加了三个变量BASEDIR,BINDIR和DATADIR,

  b.修改相关命令路径,

  c.start前,先进入DATADIR,start后,返回原目录

  d.clean前,先进入DATADIR,start后,返回原目录

  e.create的host由127.0.0.1改为192.168.1.194(不改有时会报Too many Cluster redirections)

  下面是修改后的shell

 

 #!/bin/bash

  # Settings

  PORT=30000

  TIMEOUT=2000

  NODES=6

  REPLICAS=1

  BASEDIR=/opt/redis

  BINDIR=$BASEDIR/bin

  DATADIR=$BASEDIR/data

  # You may want to put the above config parameters into config.sh in order to

  # override the defaults without modifying this script.

  if [ -a config.sh ]

  then

  source "config.sh"

  fi

  # Computed vars

  ENDPORT=$((PORT+NODES))

  if [ "$1" == "start" ]

  then

  cd $DATADIR

  while [ $((PORT < ENDPORT)) != "0" ]; do

  PORT=$((PORT+1))

  echo "Starting $PORT"

  $BINDIR/redis-server --port $PORT --cluster-enabled yes --cluster-config-file nodes-${PORT}.conf --cluster-node-timeout $TIMEOUT --appendonly yes --appendfilename appendonly-${PORT}.aof --dbfilename dump-${PORT}.rdb --logfile ${PORT}.log --daemonize yes

  done

  cd -

  exit 0

  fi

  if [ "$1" == "create" ]

  then

  HOSTS=""

  while [ $((PORT < ENDPORT)) != "0" ]; do

  PORT=$((PORT+1))

  HOSTS="$HOSTS 192.168.1.194:$PORT"

  done

  $BASEDIR/redis-trib.rb create --replicas $REPLICAS $HOSTS

  exit 0

  fi

  if [ "$1" == "stop" ]

  then

  while [ $((PORT < ENDPORT)) != "0" ]; do

  PORT=$((PORT+1))

  echo "Stopping $PORT"

  $BINDIR/redis-cli -p $PORT shutdown nosave

  done

  exit 0

  fi

  if [ "$1" == "watch" ]

  then

  PORT=$((PORT+1))

  while [ 1 ]; do

  clear

  date

  $BINDIR/redis-cli -p $PORT cluster nodes | head -30

  sleep 1

  done

  exit 0

  fi

  if [ "$1" == "tail" ]

  then

  INSTANCE=$2

  PORT=$((PORT+INSTANCE))

  tail -f ${PORT}.log

  exit 0

  fi

  if [ "$1" == "call" ]

  then

  while [ $((PORT < ENDPORT)) != "0" ]; do

  PORT=$((PORT+1))

  $BINDIR/redis-cli -p $PORT $2 $3 $4 $5 $6 $7 $8 $9

  done

  exit 0

  fi

  if [ "$1" == "clean" ]

  then

  cd $DATADIR

  rm -rf *.log

  rm -rf appendonly*.aof

  rm -rf dump*.rdb

  rm -rf nodes*.conf

  cd -

  exit 0

  fi

  echo "Usage: $0 [start|create|stop|watch|tail|clean]"

  echo "start -- Launch Redis Cluster instances."

  echo "create -- Create a cluster using redis-trib create."

  echo "stop -- Stop Redis Cluster instances."

  echo "watch -- Show CLUSTER NODES output (first 30 lines) of first node."

  echo "tail -- Run tail -f of instance at base port + ID."

  echo "clean -- Remove all instances data, logs, configs."123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

  不要忘了创建数据目录mkdir -p /opt/redis/data

  根据上面的参考,启动集群和停止集群

  启动集群:先敲入/opt/redis/create-cluster start回车,再敲入/opt/redis/create-cluster create回车,再输入yes回车

  停止集群:敲入/opt/redis/create-cluster stop回车

  如果以前启动过,造成不一致数据,create时就会报错,可先/opt/redis/create-cluster clean

  测试

 

<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>2.8.1</version>
</dependency>

  声明JedisCluster Bean

@Bean
 public JedisCluster jedisCluster(){
  Set<HostAndPort> nodes=new HashSet<>(3);
  nodes.add(new HostAndPort("192.168.1.194",30001));
  nodes.add(new HostAndPort("192.168.1.194",30002));
  nodes.add(new HostAndPort("192.168.1.194",30003));
  return new JedisCluster(nodes,2000,5);
 }

  测试set和get

  

 AnnotationConfigApplicationContext context= new AnnotationConfigApplicationContext(AppConfig.class);
  JedisCluster jedisCluster = (JedisCluster) context.getBean("jedisCluster");
  jedisCluster.set("xxx","123");
  System.out.println("jedisCluster.get = " + jedisCluster.get("xxx"));

  安装过程可能遇到的问题:

  make test时,提醒You need tcl 8.5 or newer in order to run the Redis test.到http://www.tcl.tk/software/tcltk/download.html下载Tcl,

 

wget http://prdownloads.sourceforge.net/tcl/tcl8.5.19-src.tar.gz
tar xf tcl8.5.19-src.tar.gz
cd tcl8.5.19/unix
./configure
make
make test
make install

  因为create-cluster create会调用redis-trib.rb,它是一个ruby脚本,所以提示没有安装ruby,就先安装yum install -y ruby

  如果提示加载rubygems错误,使用以下办法安装rubygems

  a.https://rubygems.org/pages/download下载tgz格式的安装包(wget可能不通,在windows用旋风或迅雷下载)

  b.mount -t cifs -o username=xiejx618,password=123456 //192.168.1.115/share /share

  

cp /share/rubygems-2.6.4.tgz ./
tar xf rubygems-2.6.4.tgz
cd rubygems-2.6.4
ruby setup.rb

  如果再提示no such file to load – rdoc/rdoc,就先安装yum install -y rdoc

  如果再提示 no such file to load – redis,就使用gem install redis -v 3.0.7

  gem又是因为墙原因无法使用默认源,就修改为淘宝源

  可能用到的几个命令

  帮助:gem sources --help

  查看源:gem sources -l

  删除源:gem sources -r https://rubygems.org/

  添加源:gem sources -a https://ruby.taobao.org/

  更新源缓存:gem sources -u

(0)

相关推荐

  • redis集群规范详解

    本文档翻译自 http://redis.io/topics/cluster-spec . 引言 这个文档是正在开发中的 Redis 集群功能的规范(specification)文档, 文档分为两个部分: 第一部分介绍目前已经在 unstable 分支中实现了的那些功能. 第二部分介绍目前仍未实现的那些功能. 文档各个部分的内容可能会随着集群功能的设计修改而发生改变, 其中, 未实现功能发生修改的几率比已实现功能发生修改的几率要高. 这个规范包含了编写客户端库(client library)所需的

  • 简单注解实现集群同步锁(spring+redis+注解)

    互联网面试的时候,是不是面试官常问一个问题如何保证集群环境下数据操作并发问题,常用的synchronized肯定是无法满足了,或许你可以借助for update对数据加锁.本文的最终解决方式你只要在方法上加一个@P4jSyn注解就能保证集群环境下同synchronized的效果,且锁的key可以任意指定.本注解还支持了锁的超时机制. 本文需要对Redis.spring和spring-data-redis有一定的了解.当然你可以借助本文的思路对通过注解对方法返回数据进行缓存,类似com.googl

  • CentOS 7下安装 redis 3.0.6并配置集群的过程详解

    安装依赖 [root@centos7-1 ~]# yum -y install gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel gcc-c++ automake autoconf 安装 redis [root@centos7-1 ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz [

  • Windows环境部署Redis集群

    一.准备文件 1.下载Redis for windows 的最新版本 下载地址:https://github.com/MSOpenTech/redis/releases 安装到 c:\Redis 目录下(Redis-x64-3.2.100.msi <Windows服务版>) 2.下载 RubyInstaller 下载地址:http://rubyinstaller.org/downloads/ 安装时,勾选:(所使用版本rubyinstaller-2.3.1-x64.exe) Install T

  • Redis 集群搭建和简单使用教程

    前言 Redis集群搭建的目的其实也就是集群搭建的目的,所有的集群主要都是为了解决一个问题,横向扩展. 在集群的概念出现之前,我们使用的硬件资源都是纵向扩展的,但是纵向扩展很快就会达到一个极限,单台机器的Cpu的处理速度,内存大小,硬盘大小没办法一直满足需求,而且机器纵向扩展的成本是相当高的.集群的出现就是能够让多台机器像一台机器一样工作,实现了资源的横向扩展. Redis是内存型数据库,当我们要存储的数据达到一定程度时,单台机器的内存满足不了我们的需求,搭建集群则是一种很好的解决方案. 介绍安

  • 在redhat6.4安装redis集群【教程】

    参考: http://redis.io/topics/cluster-tutorial(主要是Creating a Redis Cluster using the create-cluster script部分) https://ruby.taobao.org/ 安装一款不熟悉的软件前先看INSTALL,README,这是习惯,生产上要建立普通用户并调节适当参数,下面是以root身份安装运行. 下载解压并安装redis make test提示需要更高版本的tcl,跳到安装过程可能遇到的问题 wg

  • 关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    目录 一.redis 配置信息模板 二.编写批量生成配置文件脚本 三.批量生成配置文件 四.编写 docker-compose 文件 五.做集群.分配插槽 六.测试: 七.手动扩容 八.添加主从节点 1.添加主节点 2.添加从节点 九.分配插槽 十.集群测试 十一.常用命令 一.redis 配置信息模板 文件名:redis-cluster.tmpl # redis端口 port ${PORT} #redis 访问密码 requirepass 123456 #redis 访问Master节点密码

  • Redis集群的离线安装步骤及原理详析

    前言 本文主要是记录一下Redis集群在linux系统下离线的安装步骤,毕竟在生产环境下一般都是无法联网的,Redis的集群的Ruby环境安装过程还是很麻烦的,涉及到很多的依赖的安装,所以写了一个文章来进行记录.本文分为两部分,第一部分先通过原生命令的安装来实现redis集群的部署,通过原生命令的安装对于了解redis集群的实现原理有很大的帮助,第二部分通过官方工具Ruby来进行Redis集群的安装,通过Ruby安装Redis集群的时候主要是搭建好Ruby环境,真正Redis集群的安装配置通过R

  • Redis集群的搭建图文教程

    redis集群的特点: 1.机器多,能够保证redis服务器出现问题后,影响较小 2.自备主从结构,自动的根据算法划分主从结构.动态的实现 3.能够根据主从结构自动的实现高可用 4.实现数据文件的备份 3.Redis集群的搭建步骤: 准备9台服务器 3主6从 一个主机下有2个子节点 7000-7008 2.拷贝redis.conf文件到文件夹中 cp redis.conf 7000/redis-7000.conf mkdir 7000 7001 7002 7003 7004 7005 7006

  • redis集群搭建教程及遇到的问题处理

    这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出了6台机器了,然后在以这6个实例组建redis集群就可以了. 前提:redis已经安装,目录为/usr/local/redis-4.0.1 如不会,可以参考一下文章  windows下安装redis    Linux下安装redis redis集群是用的ruby脚本,所以要想执行该脚本,需要ruby环境..对应redis的源码src目

  • Redis自动化安装及集群实现搭建过程

    Redis实例安装 安装说明:自动解压缩安装包,按照指定路径编译安装,复制配置文件模板到Redis实例路的数据径下,根据端口号修改 配置文件模板 配置文件,当前shell脚本,安装包 参数1:basedir,redis安装包路径 参数2:安装实例路径 参数3:安装包名称 参数4:安装实例的端口号 #!/bin/bash set -e if [ $# -lt 4 ]; then echo "$(basename $0): Missing script argument" echo &qu

  • Docker下Redis集群(主从+哨兵)安装配置的实现步骤

    目录 一.所有机器拉去镜像 二.主从集群搭建 2.1.redis.cong 文件 2.2.创建本地映射文件夹,并将 redis.conf 放到 /usr/local/redis/conf 文件夹内 2.3.启动redis 2.4.校验redis主从集群安装是否成功 三.开启哨兵模式 3.1.sentinel.conf 配置文件 3.2.创建本地映射文件夹,并将 sentinel.conf 放到 /usr/local/redis-sentinel/conf 文件夹内 3.3.启动 redis-se

  • docker安装pxc集群的详细教程

    前言 现在mysql自建集群方案有多种,keepalived.MHA.PXC.MYSQL主备等,但是目前根据自身情况和条件,选择使用pxc的放来进行搭建,最大的好处就是,多主多备,即主从一体,没有同步延时问题,方便易用. 本人使用过,直接安装pxc和docker容器方式的安装,个人觉得docker下安装更为方便,也更易维护,所以也推荐大家使用此方式. 搭建环境 环境 centos7 pxc版本镜像:最新版,目前为8.0+ 主机ip 部署 swarm 172.16.9.40 pxc1 manage

  • docker实现redis集群搭建的方法步骤

    目录 一.创建redis docker基础镜像 二.制作redis节点镜像 三.运行redis集群 引用: 摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Redis的分布式解决方案,它解决了redis单机中心化的问题,分布式数据库--首要解决把整个数据集按照分区规则映射到多个节点的问题. 这边就需要知道分区规则--哈希分区规则.Redis Clus

随机推荐