嵌入式和java_Redis嵌入式服务器,用于Java集成测试

本文介绍了如何在Java集成测试中使用嵌入式Redis服务器。内容包括Maven依赖的引入,RedisServer的简单启动方式,如何设置Redis集群,以及如何在临时或预定义端口上运行。此外,还提到了RedisServer内置的特定版本信息。
摘要由CSDN通过智能技术生成

Maven依赖

Maven Central:

< 依赖 > < groupId > com.github.kstyrc  groupId > < artifactId > embedded-redis  artifactId > < version > 0.6  version > dependency >

以前的版本(0.6之前):

< repository > < id > clojars.org  id > < url > http://clojars.org/repo  url > repository >...< 依赖 > < groupId > redis.embedded  groupId > < artifactId > embedded-redis  artifactId > < version > 0.5  version > dependency >

用法

运行RedisServer非常简单:

RedisServer redisServer = new RedisServer(6379);redisServer 。开始();//做一些工作 redisServer 。停();

您还可以为RedisServer提供自己的可执行文件:

// 1)给出显式文件(os-independent broken!)RedisServer redisServer = new RedisServer( “ / path / to / your / redis ”, 6379);// 2)给定与os无关的矩阵RedisExecProvider customProvider = RedisExecProvider 。defaultProvider() .override(OS 。 UNIX,“ /路径/到/ UNIX / redis的”) .override(OS 。 WINDOWS,建筑。 86, “ /路径/到/窗/ redis的”) .override(OS ,视窗,建筑, x86_64的,“ /路径/到/窗/ Redis的”) .override(OS 。 MAC_OS_X,建筑。 86, “ /路径/到/ MacOSX的/ redis的”) .override(OS 。 MAC_OS_X,建筑。 x86_64的,“ /路径/到/ MacOSX的/ redis的”) RedisServer redisServer = new RedisServer(customProvider,6379);

您还可以使用Fluent API创建RedisServer:

RedisServer redisServer = RedisServer 。建设者() .redisExecProvider(customRedisProvider) .port(6379) .slaveOf(“ locahost ”,6378) .configFile(“ / path / to / your / redis.conf ”) 。建立();

甚至从头开始创建简单的redis.conf文件:

RedisServer redisServer = RedisServer 。建设者() .redisExecProvider(customRedisProvider) .port(6379) .slaveOf(“ locahost ”,6378) .setting(“ daemonize no ”) .setting(“ appendonly no ”) .setting(“ maxheap 128M ”) 。建立();

设置群集

我们的嵌入式Redis支持带有Sentinels和主从复制的HA Redis集群

使用短暂的端口

在临时端口上使用Redis群集进行简单的redis集成测试,其设置类似于生产中的设置,如下所示:

09f56f636dae1ed1cd32ce3f6e913755.png

检索端口

上面的示例在临时端口上启动Redis群集,稍后您可以使用它cluster.ports(),这将返回群集的所有端口的列表。您还可以使用cluster.sentinelPorts() 或服务器获取哨兵端口cluster.serverPorts()。JedisUtilclass包含与Jedis客户端一起使用的实用程序方法。

使用预定义端口

您还可以在预定义的端口上启动Redis群集,甚至可以混合使用两种方法:

public class SomeIntegrationTestThatRequiresRedis { private RedisCluster cluster; @Before  public void setup()抛出 Exception { final List < Integer > sentinels = Arrays 。asList(26739,26912); final List < Integer > group1 = Arrays 。asList(6667,6668); final List < Integer > group2 = Arrays 。asList(6387,6379); //创建一个具有3个标记的  群集,仲裁大小为2和3个复制组,每个复制组包含一个主群集和一个从属群集= RedisCluster 。builder()。sentinelPorts(哨兵)。quorumSize(2) .serverPorts(group1)。replicationGroup(“ master1 ”,1) .serverPorts(group2)。replicationGroup(“ master2 ”,1) .ephemeralServers()。replicationGroup(“ master3 ”,1) 。建立(); 集群。开始(); }//(...)

上面将创建并启动一个群集,其中包含端口上的标记26739, 26912,第一个复制组6667, 6668,第二个复制组6387, 6379和临时端口上的第三个复制组。

Redis版本

当没有提供所需的redis可执行文件时,RedisServer运行封装在jar中的os依赖可执行文件。目前用途:

  • 对于Linux / Unix,Redis 2.8.19
  • 对于OSX,Redis 2.8.19
  • 对于Windows,Redis 2.8.19:https://github.com/MSOpenTech/redis/releases/tag/win-2.8.19

但是,如果需要特定版本,则应为RedisServer提供redis可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值