博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu安装和测试redis-cluster
阅读量:5937 次
发布时间:2019-06-19

本文共 4978 字,大约阅读时间需要 16 分钟。

想了好久还是自己总结下这次安装redis-cluster遇到的各种问题和安装步骤,以便下次进行安装不会出错

其中是在虚拟机上进行的,UBUNTU是16.04service版,redis是3.2.9版本。

 

 

 

一、redis

  1、关于redis的介绍自己参看别的博文吧,网上很多关于说了redis的优点,记得又一次面试了一家公司问及redis和memcached的区别,当时竟然无从开口,现在感觉好惭愧;

  2、我此次搭建redis-cluster主要参考了博文 http://blog.csdn.net/zh520qx/article/details/54577753,由于博主要求就没有转载了,但有的地方 可能并不适用于任何系统,所以自己才写了这个随笔;

二、redis-cluster搭建的准备步骤

1、安装redis

我是安装在 /opt  路径下 所以先进入/opt下进行以下操作

下载 $ wget http://download.redis.io/releases/redis-3.2.9.tar.gz

解压 $ tar xzf redis-3.2.9.tar.gz

进入目录 $ cd /opt/redis-3.2.9

编译 $ make

编译成功之后在 /opt/redis-3.2.9/src 下有redis-server 可以启动试下是否安装redis成功  ./redis-server  

网上其实还有别的安装redis方法这里就不多说了

2、安装集群的一些依赖

2.1)、安装zlib

$ sudo apt-get install zlib1g-dev 或者 $ sudo apt-get install zlib1g

2.2)、安装ruby环境

$ sudo apt-get install ruby 其实这篇文章不错  介绍了ubuntu多种安装ruby环境的方法  http://blog.csdn.net/chszs/article/details/42462517

2.3)、安装ruby 的redis库

gem install redis 

如果没有gem,就按照提示安装再执行上面命令就行

 

3、创建redis实例

3.1)创建实例目录

$ mkdir /usr/local/redis-cluster/redis{7001,7002,7003,7004,7005,7006,7007,7008}

3.2) 复制redis.conf redis-server redis-cli 到实例目录下

for dir in /usr/local/redis-cluster/redis700*; do cp -v /opt/redis-3.2.9/redis.conf $dir ; done

for dir in /usr/local/redis-cluster/redis700*; do cp -v /opt/redis-3.2.9/src/redis-server $dir ; done

for dir in /usr/local/redis-cluster/redis700*; do cp -v /opt/redis-3.2.9/src/redis-cli $dir ; done

 这个复制详细说明庆参考博文 http://blog.csdn.net/maowenbin/article/details/7758367

也可以单个复制

cp /usr/local/redis-cluster/redis7001 /opt/redis-3.2.9/src/redis-server

cp /usr/local/redis-cluster/redis7002 /opt/redis-3.2.9/src/redis-server

cp /usr/local/redis-cluster/redis7003 /opt/redis-3.2.9/src/redis-server

cp /usr/local/redis-cluster/redis7004 /opt/redis-3.2.9/src/redis-servercp /usr/local/redis-cluster/redis7005 /opt/redis-3.2.9/src/redis-server

cp /usr/local/redis-cluster/redis7006 /opt/redis-3.2.9/src/redis-servercp /usr/local/redis-cluster/redis7007 /opt/redis-3.2.9/src/redis-server

cp /usr/local/redis-cluster/redis7008 /opt/redis-3.2.9/src/redis-servercp /usr/local/redis-cluster/redis7001 /opt/redis-3.2.9/src/redis-cli

cp /usr/local/redis-cluster/redis7002 /opt/redis-3.2.9/src/redis-cli

cp /usr/local/redis-cluster/redis7003 /opt/redis-3.2.9/src/redis-cli
cp /usr/local/redis-cluster/redis7004 /opt/redis-3.2.9/src/redis-cli
cp /usr/local/redis-cluster/redis7005 /opt/redis-3.2.9/src/redis-cli

cp /usr/local/redis-cluster/redis7006 /opt/redis-3.2.9/src/redis-cli

cp /usr/local/redis-cluster/redis7007 /opt/redis-3.2.9/src/redis-cli

cp /usr/local/redis-cluster/redis7008 /opt/redis-3.2.9/src/redis-cli

3.3)修改配置参数

for dir in /usr/local/redis-cluster/redis700*; do

myport=`basename $dir|sed 's/[a-zA-Z]*//g'`
sed -r -i "
s@^\s*port.*@port $myport@;
s@^\s*daemonize.*@daemonize yes@;
s@^\s*pidfile.*@pidfile /var/run/redis_$myport.pid@;
s@^\s*logfile.*@logfile /var/log/redis_$myport.log@;
s@^\s*#?\s*cluster-enabled.*@cluster-enabled yes@;
s@^\s*#?\s*cluster-config-file.*@cluster-config-file $dir/nodes-$myport.conf@;
s@^\s*#?\s*cluster-node-timeout.*@cluster-node-timeout 15000@;
s@^\s*dir.*@dir $dir@;
" $dir/redis.conf
done

执行上面命令之后发现配置文件redis.conf里的一项 bing 127.0.0.1这个在创建集群后会导致失败,因此就手动改成 bind 192.168.194

3.4)启动所有实例

for dir in /usr/local/redis-cluster/redis700*; do /opt/redis-3.2.9/src/redis-server $dir/redis.conf ; done

查看实例是否启动成功

$ ps -ef|grep redis

3.5)通过redis-trib.rb创建集群

由于我的redis-trib.rb在/opt/redis-3.2.9/src/,你也可以复制到别的目录下方便启动

./opt/redis-3.2.9/src/redis-trib.rb create --replicas 1 192.168.194.130:7001 192.168.194.130:7002 192.168.194.130:7003 192.168.194.130:7004 192.168.194.130:7005 192.168.194.130:7006

 

3.6)启动redis集群服务

我是分别进入 /usr/local/redis-cluster/redis700* 每个目录下,分别执行 ./redis-server redis.conf

现在写了个脚本,每次执行脚本就行了

每次执行 $ ./redis.sh就可以了,内容如下

#!/bin/bash

cd /usr/local/redis-cluster/redis7001
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7002
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7003
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7004
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7005
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7006
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7007
./redis-server redis.conf
cd /usr/local/redis-cluster/redis7008
./redis-server redis.conf

 

 

3.6)连接redis集群

  命令连接:./redis-cli -h 192.168.194.130 -p 7001 -c

 

java 连接

public class TestRedisCluster {

    /**
     * @param args
     */
    public static void main(String[] args) {
         Set<HostAndPort> nodes = new HashSet<HostAndPort>();
         nodes.add(new HostAndPort("192.168.194.130", 7001));  
         nodes.add(new HostAndPort("192.168.194.130", 7002));
         nodes.add(new HostAndPort("192.168.194.130", 7003));
         JedisCluster cluster = new JedisCluster(nodes );
         cluster.set("key1", "100wwwww0");
         System.out.println("key1="+cluster.get("key1"));
    }
}至此redis集群搭建结束,至于动态添加节点,删除节点之类的可以参考别的博客,后续会完善笔记..............................................................

 

 最后要关闭redis 的命令 ./redis-cli -h 192.168.194.130 -p 7003 shutdown

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yanglonggang/p/7001385.html

你可能感兴趣的文章
排序算法2——冒泡排序,快速排序
查看>>
C# 实现多线程的同步方法详解
查看>>
Python基础知识学习_Day2
查看>>
杂文->一个编程竞技游戏的设想
查看>>
Anaconda died after receiving signal 7
查看>>
解决虚拟机linux端mysql数据库无法远程访问
查看>>
JavaScript学习
查看>>
bzoj1269&&1507
查看>>
软件工程之构建之法
查看>>
计算机行业四个等式
查看>>
leetcode-665-Non-decreasing Array
查看>>
MYSQL 数据库导入 SQL 文件出现乱码的问题
查看>>
****** 九 ******、软设笔记【操作系统】-处理机管理(一)-死锁
查看>>
静态导入,断言
查看>>
scrollView + tableview 上下滑动失效
查看>>
UVa 10902
查看>>
Mathf.Sin正弦
查看>>
图片文字滚动插件jQuery Scrollbox
查看>>
POJ-3041 行列匹配构图+最小顶点覆盖
查看>>
〖Android〗CyanogenMod同步错误的解决
查看>>