阿里云上面装redis集群基本被虐死,主要问题就是私有IP和公有IP。

下面分享成功搭建的步骤:

两台测试服务器,分别为:127.0.0.1,127.0.0.2.每分服务器有3个节点。

1.127.0.0.1 创建节点

在目录/opt/redis-4.0.2 mkdir cluster

mkdir 6370 6371 6372

2.修改redis.conf

bind 0.0.0.0改为#bind 0.0.0.0

dir ./ 改为dir /opt/redis-4.0.2/cluster/data

daemonize yes //redis后台运行
cluster-enabled yes //开启集群 把注释#去掉
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
protected-mode no //(需要不同服务器的节点连通,这个就要设置为 no)

#bind 127.0.0.1 此行一定要注释掉 不然用公有IP创建集群会失败

做集群的时候以下两行一定要注释掉

# unixsocket /tmp/redis.sock
# unixsocketperm 700

复制配置文件

cp /opt/redis-4.0.2/redis.conf ./redis_cluster/6370/
cp /opt/redis-4.0.2/redis.conf ./redis_cluster/6371/
cp /opt/redis-4.0.2/redis.conf ./redis_cluster/6372/

# 根据不同端口需要设置的地方
port 6370
logfile /opt/redis-4.0.2/logs/redis_6370.log
dbfilename dump_6370.rdb
appendfilename "appendonly_6370.aof"
cluster-config-file nodes_6370.conf //集群的配置

第二个就可以使用命令整体替换

:%s/6370/6371/g

3.启动

./redis-server /opt/redis-4.0.2/cluster/6370/redis.conf &
./redis-server /opt/redis-4.0.2/cluster/6371/redis.conf &
./redis-server /opt/redis-4.0.2/cluster/6372/redis.conf &

4.127.0.0.2和127.0.0.1创建除端口之外都相同

ps -ef | grep redis   #查看是否启动成功

netstat -tnlp | grep redis #可以看到redis监听端口

5.创建集群

安装rubygems

yum install rubygems

[root@insure src]# gem install redis -v 3.3.
Fetching: redis-3.3..gem (%)
Successfully installed redis-3.3.
Parsing documentation for redis-3.3.
Installing ri documentation for redis-3.3.
gem installed

----------集群创建------------------

创建集群 一定要用公有IP,或者jediscluster程序连接会报超时

执行./redis-trib.rb  create  --replicas  1  *.16.120.*:6370 *.16.120.*:6371 *.16.120.*:6372 *.16.120.*:6373  *.16.120.*:6374  *.16.120.*:6375

测试连接

可以在*.*.*.189 连接看一下:

./redis-cli -h *.*.*.190 -p 6373

关键点:

redis.conf  中requirepass 设置密码

find / -name client.rb

/usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.0.3/lib/redis 修改client.rb password改成设置的密码

:host => "172.16.*.*",  #改成公有IP
:port => 6373,
:path => nil,
:timeout => 5.0,
:password => '******',

主从如果连接不成功

masterauth 设置你的密码

集群
cluster info :打印集群的信息
cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关信息。

java代码

1. 引用文件

<!-- 添加jedis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.</version>
</dependency>

2. 配置文件

spring.redis.cluster.nodes=.*.8.8:,.*.8.8:,.*.8.8:,.*.8.8:,.*.8.8:,.*.8.8:
spring.redis.cluster.max-redirects=
spring.redis.password=P11111111111
spring.redis.connection_timeout=
spring.redis.timeout=
spring.redis.jedis.pool.max-total=
spring.redis.jedis.pool.max-wait=-
spring.redis.jedis.pool.max-idle=
spring.redis.jedis.pool.min-idle=

3.代码

@Configuration
@EnableCaching
public class RedisClusterConfiguration extends CachingConfigurerSupport {
private static Logger logger = LoggerFactory.getLogger(RedisClusterConfiguration.class); @Value("${spring.redis.cluster.nodes}")
private String clusterNodes; @Value("${spring.redis.connection_timeout}")
private int connectionTimeout; @Value("${spring.redis.timeout}")
private int timeout; @Value("${spring.redis.jedis.pool.max-idle}")
private int maxIdle; @Value("${spring.redis.jedis.pool.min-idle}")
private int minIdle; @Value("${spring.redis.jedis.pool.max-wait}")
private long maxWaitMillis; @Value("${spring.redis.password}")
private String password; @Value("${spring.redis.jedis.pool.max-total}")
private int maxTotal; @Value("${redis.max_attempts:10}")
private int maxAttempts; @Bean
public JedisCluster redisPoolFactory() {
String [] serverArray = clusterNodes.split(","); Set<HostAndPort> nodes = new HashSet<HostAndPort>();
for (String ipPort:serverArray){
String [] ipPortPair=ipPort.split(":");
nodes.add(new HostAndPort(ipPortPair[].trim(),Integer.valueOf(ipPortPair[].trim()))); }
//创建config
GenericObjectPoolConfig pool = new GenericObjectPoolConfig();
pool.setMaxTotal(maxTotal);
pool.setMinIdle(minIdle);
pool.setMaxIdle(maxIdle);
pool.setMaxWaitMillis(maxWaitMillis);
//通过config创建集群实例
JedisCluster jedisCluster =
new JedisCluster(nodes, connectionTimeout, timeout, maxAttempts, password, pool);
logger.info("JedisPool注入成功");
jedisCluster.set("sys","testredis");
String str = jedisCluster.get("sys");
logger.info("获取redis里面的值:" + str);
return jedisCluster;
}
}

redis集群搭建及连接(阿里云)的更多相关文章

  1. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  2. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  3. redis集群搭建及注意事项

    上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...

  4. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  5. [转载] Redis集群搭建最佳实践

    转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...

  6. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  7. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  8. redis集群搭建及设置账户(转)

    Redis集群搭建以及为集群设置密码 介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. ...

  9. redis 集群搭建: redis-cluster

    前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...

随机推荐

  1. HDU1114(KB12-F DP)

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  2. PHP 绘制验证码

    使用PHP绘制验证码  可直接使用 // 验证码 <?php $checkCode = ""; for ($i=0; $i < 4; $i++) { // 十进制转换为 ...

  3. javascript预编译的过程

    预编译的两种情况 全局: 1.全局 直接是script标签中的代码,不包括函数执行执行前:1.首先生成一个GO(global object)对象,看不到,但是可以模拟出来用来分析2.分析变量声明,变量 ...

  4. C#加解密算法

    先附上源码 加密解密算法目前已经应用到我们生活中的各个方面 加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取. 数据完整性:帮助保护数据不被更改. 身份验证:确保数据发自特定的一方. ...

  5. Android 开源库和项目 3

    Android 开源库和项目 Android 开源库和项目 2 1.Matisse Android 图片选择器 -- 知乎开源 github 地址:https://github.com/zhihu/M ...

  6. 成为Java顶尖程序员,先过了下面问题!

    一.数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度. 用Java写一个冒泡排序算法 描述一下链式存储结构. 如何遍历一棵二叉树? 倒排一个LinkedList. 用Java写一个递归遍历目 ...

  7. Httprunner学习

    一.简介 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 核心特性: 继 ...

  8. OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 概览 Grafana 是一个开源的监控数据分析和可视化套件.最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用 ...

  9. SecureCRT使用问题记录

    1.破解版下载&安装 参考:https://bbs.feng.com/read-htm-tid-6939481.html 2.session导入 查看 SecureCRT-Preference ...

  10. windows系统相关命令及问题排查实践

    1. 如何查看哪个端口被哪个程序占用? Netstat –ano|findstr "80" ->找到监听80端口的pid tasklist|findstr “<PID号 ...