Redis集群搭建 windows系统

下载Redis的zip文件

https://github.com/MSOpenTech/redis/releases/

下载完直接解压缩,可以自己建文件夹重新定义名字


安装Redis,并运行3个实例(Redis集群需要至少3个以上节点,低于3个无法创建);
通过配置文件来启动3个不同的Redis实例,由于Redis默认端口为6379,所以这里使用了6380、6381、6382来运行3个Redis实例。
注意:为了避免不必要的错误,配置文件尽量保存为utf8格式,并且不要包含注释;

配置文件中以下两种保存日志的方式(保存在文件中、保存到System Log中)请根据需求选择其中一种即可:

配置文件注释意思

port 6380       #端口号
loglevel notice    #日志的记录级别,notice是适合生产环境的
logfile "Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录 需要手动创建,如此处的Logs目录
syslog-enabled yes                         #是否使用系统日志
syslog-ident redis6380                   #在系统日志的标识名
appendonly yes                              #数据的保存为aof格式
appendfilename "appendonly.6380.aof"    #数据保存文件
cluster-enabled yes                                    #是否开启集群


 redis.6380.conf 内容如下:

port 6380      
loglevel notice    
logfile "D:/Redis/Logs/redis6380_log.txt"       
appendonly yes
appendfilename "appendonly.6380.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6380.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

  redis.6381.conf 内容如下:

port 6381       #端口号
loglevel notice   #日志的记录级别,notice是适合生产环境的
logfile "D:/Redis/Logs/redis6381_log.txt"        #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录

appendonly yes
appendfilename "appendonly.6381.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6381.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

redis.6382.conf 内容如下:

port 6382       #端口号
loglevel notice    
logfile "D:/Redis/Logs/redis6382_log.txt"         
appendonly yes
appendfilename "appendonly.6382.aof"    
cluster-enabled yes                                    
cluster-config-file nodes.6382.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes

然后配置完了自己新建三个txt文件,改格式为bat文件进行编写,最后启动redis集群批命令文件就启动三个服务了:






下载并安装ruby

 下载路径如下:

  http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

      下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: C:\Ruby22-x64 ,安装时这里选中后两个选项,

  意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令

    

   2.2.下载ruby环境下Redis的驱动,考虑到兼容性,这里下载的是3.2.2版本

  https://rubygems.org/gems/redis/versions/3.2.2

      注意:下载在页面右下角相关连接一项中

           

      安装该驱动,命令如下:

gem install --local path_to_gem/filename.gem  

       实际操作如下:

    

      2.3.下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb,路径如下:

    https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

           打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb

           建议保存到Redis的目录下。

             

  注意:因为redis-trib.rb是ruby代码,必须用ruby来打开,若redis-trib.rb无法识别,需要手动选择该文件的打开方式:

                  

                  

           **选择ruby为的打开方式后,redis-trib.rb的logo都会发生改变,如下图:

                      

 

  3.创建Redis集群  

     CMD下切换到Redis目录,使用redis-trib.rb来创建Redis集群:

redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 

  执行结果:

     

     当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群

     

     检验是否真的创建成功,输入以下命令:

redis-trib.rb check 127.0.0.1:6380

     出现以下信息,说明创建的Redis集群是没问题的

 

   使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息

D:/Redis/redis-cli.exe -c -p 6380

   -c 表示 cluster

   -p 表示 port 端口号

   

   输入dbsize查询 记录总数

dbsize

   或者一次输入完整命令:

D:/Redis/redis-cli.exe -c -p 6380 dbsize

    结果如下:

    

    输入cluster info可以从客户端的查看集群的信息:

cluster info

 结果如下:

  

 最后java代码测试:

package com.liu.redis.test;

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

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.util.JedisClusterCRC16;

/**
 * @author liuchaojun
 * @date 2018-4-12 上午10:22:19
 */
public class Test {
	public static void main(String[] args) {
		Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
		jedisClusterNodes.add(new HostAndPort("127.0.0.1", 6380));
		JedisCluster jc = new JedisCluster(jedisClusterNodes);

		String key = "6381";
		jc.setnx(key, "liu6381");
		String value = jc.get(key);
		System.out.println("key-" + key + " slot-"
				+ JedisClusterCRC16.getSlot(key) + " value-" + value);

		String key2 = "6382";
		jc.setnx(key2, "liu6382");
		String value2 = jc.get(key2);
		System.out.println("key-" + key2 + " slot-"
				+ JedisClusterCRC16.getSlot(key2) + " value-" + value2);
		
		String key3 = "6383";
		jc.setnx(key3, "liu6383");
		String value3 = jc.get(key3);
		System.out.println("key-" + key3 + " slot-"
				+ JedisClusterCRC16.getSlot(key3) + " value-" + value3);
	}
}

运行界面:


如果报错可能需要一个jar包:commons-pool2-2.0.jar

最后清空redis缓存:

进入目录文件夹链接redis服务器:



所有的文件我打包放在这链接,如果上面链接下载慢,这里自行下载

https://download.csdn.net/download/qq_27026603/10343443


猜你喜欢

转载自blog.csdn.net/qq_27026603/article/details/79911129
今日推荐