redis学习笔记 -- day03 集群搭建

一、搭建Ruby环境

redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境。

1、安装ruby

[root@localhost bin]# yum install ruby
redis学习笔记 -- day03 集群搭建_第1张图片

[root@localhost bin]# yum install rubygems
redis学习笔记 -- day03 集群搭建_第2张图片

2、上传ruby和redis的接口工程redis-3.0.0.gem到Linux系统中

redis学习笔记 -- day03 集群搭建_第3张图片

[root@localhost redis]# gem install redis-3.0.0.gem 
redis学习笔记 -- day03 集群搭建_第4张图片

3、创建redis-cluster集群文件夹

[root@localhost /]# mkdir /usr/local/redis-cluster -p
redis学习笔记 -- day03 集群搭建_第5张图片

4、进入redis安装目录,拷贝redis-trib.rb文件拷入redis-cluster中

redis-trib.rb是搭建redis集群的脚本文件

[root@localhost etc]# cp /usr/local/java/redis-3.0.0/src/redis-trib.rb /usr/local/redis-cluster/

redis学习笔记 -- day03 集群搭建_第6张图片

二、搭建Resis集群

1、规划环境

redis集群最少需要3台主机,每一台主机再配置一台从机,则需要6台机器。6台机器对应的端口分别是7001~7006

2、创建7001的文件夹,并将redis/bin目录拷入7001文件夹

[root@localhost redis-cluster]# cp ../redis/bin/ ./7001 -r
redis学习笔记 -- day03 集群搭建_第7张图片

3、进入7001文件夹,删除 *.rdb  *.aof  nodes.conf文件(Redis节点必须是空节点,需要删除这些文件)

redis学习笔记 -- day03 集群搭建_第8张图片

4、修改redis.conf配置文件

(1)、开启守护进程

redis学习笔记 -- day03 集群搭建_第9张图片

(2)、修改端口为7001

redis学习笔记 -- day03 集群搭建_第10张图片

(3)、启动集群

redis学习笔记 -- day03 集群搭建_第11张图片

5、复制7001,按照以上步骤进行修改配置文件

redis学习笔记 -- day03 集群搭建_第12张图片

6、创建启动脚本

redis学习笔记 -- day03 集群搭建_第13张图片

redis学习笔记 -- day03 集群搭建_第14张图片

7、给脚本设置启动权限

[root@localhost redis-cluster]# chmod u+x start-all.sh 

redis学习笔记 -- day03 集群搭建_第15张图片

8、执行脚本,启动redis,查看进程

redis学习笔记 -- day03 集群搭建_第16张图片

9、创建集群

[root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 192.168.200.134:7001 192.168.200.134:7002 192.168.200.134:7003 192.168.200.134:7004 192.168.200.134:7005 192.168.200.134:7006 
redis学习笔记 -- day03 集群搭建_第17张图片

三、连接集群

[root@localhost 7001]# ./redis-cli -h 192.168.200.134 -p 7001 -c
说明:如果客户端可服务端在同一台机器,-h 命令可以不执行,但是 -p 命令任何时候都要执行  -c命令为启动集群的时候必须加的命令

注意:每次存储数值,会根据算法,将数据存储到不同的节点上

redis学习笔记 -- day03 集群搭建_第18张图片

redis学习笔记 -- day03 集群搭建_第19张图片

四、通过java代码连接集群

1、添加依赖

redis学习笔记 -- day03 集群搭建_第20张图片

2、编写配置文件




	
	
		
		
	

	
	
		
			
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
				
					
					
				
			
		
	

3、编写测试代码

package test;

import java.util.HashSet;
import java.util.Set;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPool;

public class TestJedis {

	private String host = "192.168.200.134";
	private int port = 6379;

	/**
	 * 单机版redis
	 */
	@Test
	public void testJedis() {
		// 创建jedis实例
		Jedis jedis = new Jedis(host, port);
		// 调用jedis的api方法存储或者获取数据
		jedis.set("s1", "444");
		System.out.println(jedis.get("s1"));
		// 释放资源
		jedis.close();
	}

	/**
	 * 使用连接池
	 */
	@Test
	public void testJedisPool() {
		// 创建jedis实例
		JedisPool pool = new JedisPool(host, port);
		// 获取jedis实例
		Jedis jedis = pool.getResource();
		// 调用方法存储
		System.out.println(jedis.get("s1"));
		// 释放资源
		jedis.close();
		pool.close();
	}

	/**
	 * 集群版redis
	 */
	@Test
	public void testClusterRedis() {
		Set nodes = new HashSet<>();
		nodes.add(new HostAndPort(host, 7001));
		nodes.add(new HostAndPort(host, 7002));
		nodes.add(new HostAndPort(host, 7003));
		nodes.add(new HostAndPort(host, 7004));
		nodes.add(new HostAndPort(host, 7005));
		nodes.add(new HostAndPort(host, 7006));
		// 创建JedisCluster实例
		JedisCluster cluster = new JedisCluster(nodes);
		// 调用api
		System.out.println(cluster.get("s3"));
		// 释放资源
		cluster.close();
	}

	/**
	 * 整合spring
	 */
	@Test
	public void testSpirngJedisPool() {
		ApplicationContext app = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-redis.xml");
		JedisPool pool = app.getBean(JedisPool.class);
		// 获取jedis实例
		Jedis jedis = pool.getResource();
		// 调用方法存储
		System.out.println(jedis.get("s1"));
		// 释放资源
		jedis.close();
	}
	
	/**
	 * 测试集群
	 */
	@Test
	public void testCluster(){
		ApplicationContext app = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-redis.xml");
		JedisCluster cluster = app.getBean(JedisCluster.class);
		//调用方法
		System.out.println(cluster.get("s2"));
	}
}



你可能感兴趣的:(redis学习笔记 -- day03 集群搭建)