博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis嵌入式服务器,用于Java集成测试
阅读量:3960 次
发布时间:2019-05-24

本文共 2673 字,大约阅读时间需要 8 分钟。

Maven依赖

Maven Central:

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

以前的版本(0.6之前):

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

用法

运行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集成测试,其设置类似于生产中的设置,如下所示:

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

 

检索端口

上面的示例在临时端口上启动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可执行文件。

转载地址:http://qzezi.baihongyu.com/

你可能感兴趣的文章
软件配置管理概念-2,用户角色
查看>>
软件配置管理概念-3,CM系统的概念
查看>>
JSP/Servlet应用程序优化八法
查看>>
人生必修的181条佛理
查看>>
The Most Widely Used Java Libraries
查看>>
简单在单机使用apache-james(开源邮件服务器)
查看>>
lsof 快速起步
查看>>
跨平台Java程序注意事项
查看>>
Python字符与数字的相互转换
查看>>
C 指针解读
查看>>
有关乱码的处理---中国程序员永远无法避免的话题
查看>>
JSP的运行内幕
查看>>
python超简单的web服务器
查看>>
代理模式、静态代理、动态代理、aop
查看>>
Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00
查看>>
大型Web2.0站点构建技术初探
查看>>
机器学习算法汇总:人工神经网络、深度学习及其它
查看>>
解决Spring中AOP不能切入Struts的DispatchAction方法的问题
查看>>
出国以后才知道英语应该怎么学
查看>>
计算机专业权威期刊投稿经验总结
查看>>