redhat 6.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 로 바 뀌 었 다.
다음은 수 정 된 셸 입 니 다.
 

 #!/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 리 턴 을 두 드 린 다음 yes 리 턴 을 입력 하 십시오.
클 러 스 터 정지: 입력 / opt / redis / create - cluster stop 리 턴
이전에 시작 한 적 이 있 으 면 일치 하지 않 는 데 이 터 를 만 들 때 오류 가 발생 합 니 다. 먼저 / opt / redis / create - cluster clean 을 사용 할 수 있 습 니 다.
테스트
 


 redis.clients
 jedis
 2.8.1

성명 JedisCluster Bean

@Bean
 public JedisCluster jedisCluster(){
  Set 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 에서 Redis test 를 실행 하려 면 tcl 8.5 or newer 가 필요 하 다 고 알려 줍 니 다.http://www.tcl.tk/software/tcltk/download.htmlTcl 다운로드,
 

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 를 설치 하 라 고 알려 줍 니 다.
루비 gems 불 러 오 는 중 오류 가 발생 하면 루비 gems 를 설치 하 는 방법 을 사용 하 십시오
  a.https://rubygems.org/pages/downloadtgz 형식의 설치 패 키 지 를 다운로드 합 니 다.
  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 ○ C rdoc / rdoc 를 다시 알려 준다 면, 먼저 yum install - y rdoc 를 설치 하 십시오.
만약 이러한 파일 이 로드 되 지 않 는 다 면, gem install redis - v 3.0.7 을 사용 하 십시오.
gem 는 벽 때문에 기본 소스 를 사용 할 수 없 기 때문에 타 오 바 오 소스 로 변경 합 니 다.
이 가능 하 다, ~ 할 수 있다,...
도움말: gem sources -- help
원본 보기: gem sources - l
원본 삭제: gem sources - rhttps://rubygems.org/
원본 추가: gem sources - ahttps://ruby.taobao.org/
원본 캐 시 업데이트: gem sources - u

좋은 웹페이지 즐겨찾기