我这边主要是搭建出来做测试用的,真实环境还是要使用linux。
环境需求:
- Redis-win-3.2.100
- Ruby-win-2.2.4-x64
- Redis-3.2.2.gem(ruby驱动,需要对应redis的版本号)
- Redis-trib.rb源码
1.安装Redis,并运行3个实例(Redis集群需要至少3个以上节点,低于3个无法创建);
2.使用redis-trib.rb工具来创建Redis集群,由于该文件是用ruby语言写的,所以需要安装Ruby开发环境,以及驱动redis-xxxx.gem。
1.下载并安装Redis
GitHub路径如下:https://github.com/MSOpenTech/redis/releases/
Redis提供msi和zip格式的下载文件,这里下载zip格式3.2.100版本
将下载到的Redis-win-3.2.100.zip解压即可,为了方便使用,建议放在盘符根目录下,并修改目录名为Redis,如:C:\Redis 或者D:\Redis。当然也可以放在桌面,只要你喜欢。
通过配置文件来启动3个不同的Redis实例,由于Redis默认端口为6379,所以这里使用了7000、7001、7002来运行3个Redis实例。
注意:为了避免不必要的错误,配置文件尽量保存为utf8格式,并且不要包含注释;
7000的关键配置文件如下:
port 7000 loglevel notice logfile "d:/logs/redis/redis7000.log" appendonly yes appendfilename "appendonly.7000.aof" #下面是集群相关的 cluster-enabled yes cluster-config-file nodes.7000.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
7001的关键配置文件如下:
port 7001 loglevel notice logfile "d:/logs/redis/redis7001.log" appendonly yes appendfilename "appendonly.7001.aof" #下面是集群相关的 cluster-enabled yes cluster-config-file nodes.7001.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
7002的关键配置文件如下:
port 7000 loglevel notice logfile "d:/logs/redis/redis7002.log" appendonly yes appendfilename "appendonly.7002.aof" #下面是集群相关的 cluster-enabled yes cluster-config-file nodes.7002.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
注:
port 7000 #端口号
loglevel notice #日志的记录级别,notice是适合生产环境的
logfile "logs/redis7000_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
syslog-enabled yes #是否使用系统日志
syslog-ident redis7000 #在系统日志的标识名
appendonly yes #数据的保存为aof格式
appendfilename "appendonly.7000.aof" #数据保存文件
cluster-enabled yes #是否开启集群
cluster-config-file nodes.7000.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
2.启动Redis服务
./7000/redis-server.exe redis.conf
./7000/redis-server.exe redis.conf
./7000/redis-server.exe redis.conf
3.下载并安装ruby
3.1 下载路径如下:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe
下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: C:\Ruby22-x64 ,安装时这里选中后两个选项,
意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令
3.2 下载ruby环境下Redis的驱动,考虑到兼容性,这里下载的是3.2.2版本
https://rubygems.org/gems/redis/versions/3.2.2
注意:下载在页面右下角相关连接一项中
安装该驱动,命令如下:
gem install --local path_to_gem/filename.gem
4.创建Redis集群
cmd下切换到Redis目录,使用redis-trib.rb来创建Redis集群:
redis-trib.rb create --replicas 0 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002
执行结果:
当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群
检验是否真的创建成功,输入以下命令:
redis-trib.rb check 127.0.0.1:7000
出现以下信息,说明创建的Redis集群是没问题的
启动效果图:
测试环境:
apache-tomcat-8.0.47
两个war包,A包使用7000端口的Redis,B包使用7001端口Redis。
然后分别设置缓存、读取缓存、发布redis消息;
图片中指向的数据表示一致。
1 Comment
测试的代码是:
@Autowired
private IRedisMessageService redisMessageService;
@Autowired
private CacheProvider cacheProvider;
cacheProvider.put(“tsetString”, “string” + DateUtil.getTime(), 0);
cacheProvider.put(“testInt”, DateUtil.getTime(), 0);
cacheProvider.put(“testObject”, new Model(), 0);
try {
StringBuffer sb = new StringBuffer();
sb.append(“tsetString:” + cacheProvider.get(“tsetString”))
.append(“\ntestInt:” + cacheProvider.get(“testInt”))
.append(“\ntestObject:” + cacheProvider.get(“testObject”));
redisMessageService.sendMessage(ConstantRedis.CHANNEL_TEST, sb.toString());
resp.setInfo(sb.toString());
} catch (IllegalServiceException e) {
e.printStackTrace();
}