spring-data-redis 相关问题

Spring Data Redis是更大的Spring Data系列的一部分,可以从Spring应用程序轻松配置和访问Redis。它提供了与商店交互的低级和高级抽象,使用户免于基础设施问题。

是否可以使用 Spring Data Redis 使用 Lettuce 查找不同分片上的键

我在我的api中使用spring data redis。我正在尝试通过 java 运行以下命令: Set union = redisTemplate.opsForSet().union(ids); 这导致需要 CROSSSLOT 密钥...

回答 1 投票 0

Spring Boot 3中的Redis缓存配置缓存的TTL和前缀名称但未激活

我正在使用 Spring Boot 3 和 redis 缓存。我想使用 redis 来缓存前缀名称和 TTL 来自动释放缓存,但它不活动。 pom.xml org.springfra...

回答 1 投票 0

使用 CrudRepository.saveAll(..) 时,批量记录需要花费太多时间保存在 Redis 中

我试图通过redis存储库在redis中保存100万条记录,但是当我保存它时需要将近4分钟才能保存它,我的代码如下 公共接口 ActionEventTypesModelRepository e...

回答 1 投票 0

使用 CrudRepository.saveAll(..) 时,批量记录需要花费太多时间保存在 Redis 中

我试图通过redis存储库在redis中保存100万条记录,但是当我保存它时需要将近4分钟才能保存它,我的代码如下 公共接口 ActionEventTypesModelRepository e...

回答 1 投票 0

无法设置简单的Redis + Spring项目:“默认情况下不支持Java 8日期/时间类型`java.time.Instant`”

非常感谢您提前提供的帮助!我正在尝试使用 IntelliJ 建立一个简单的 Spring + Redis 项目,遗憾的是它不起作用。 我在这里检查了无数的论坛帖子,但遗憾的是......

回答 1 投票 0

lettuce中无法获取锁异常

我们最近在生产服务中从 jedis 转向使用生菜。然而,我们在创建 Redis 分布式锁时遇到了障碍 我们正在使用 aws elastic 的非集群设置...

回答 2 投票 0

使用Spring + Jedis设置时,排序集如何存储在redis中?

我有一个 Spring 4.3.9 应用程序,带有 spring-data-redis (1.8.7) 和 jedis (2.9.0)。我可以使用以下代码轻松设置和检索 ZSET: // 注释掉了——但下面的行也可以正常工作 // redisTe...

回答 1 投票 0

微服务如何知道 Redis 密钥来访问 Redis 中的数据

我一直在谷歌上搜索很多关于微服务如何访问 Redis 数据的信息,但没有找到好的教程。这是我的用例。 用户登录认证微服务A(spring boot)...

回答 1 投票 0

无法从Redis缓存获取集合

我们使用 Redis 缓存在应用程序的缓存中存储数据。我们直接使用 @Cacheable允许缓存并使用下面的redis来缓存。下面是配置 Redis 配置 - @

回答 1 投票 0

Lettuce默认是同步工作的吗? (Spring Data Redis)

生菜github:https://github.com/lettuce-io/lettuce-core/issues/1085 1 “Spring Data Redis 使用 Lettuce 的同步和反应式 API。”它说 这是否意味着它基本上是同步工作的? 我

回答 1 投票 0

模拟redis模板

我在模拟 Redis 模板中遇到问题。 任何人都可以帮我为下面的课程编写单元测试吗? @存储库 公共类 CasheRepo { @Autowired 私有Redis模板 我在模拟 Redis 模板中遇到问题。 任何人都可以帮我为下面的课程编写单元测试吗? @Repository public class CasheRepo { @Autowired private RedisTemplate<String, Object> template; public Object getObject(final String key) { return template.opsForValue().get(key); } } 下面是单元测试类。但它不起作用。它显示空点异常 @RunWith(MockitoJUnitRunner.class) public class CashRepoTest { @InjectMocks private CasheRepo casheRepo = new CasheRepo(); private @Mock RedisConnection redisConnectionMock; private @Mock RedisConnectionFactory redisConnectionFactoryMock; private RedisTemplate redisTemplate; @Before public void setUp() { Mockito.when(redisConnectionFactoryMock.getConnection()).thenReturn(redisConnectionMock); redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(redisConnectionFactoryMock); redisTemplate.afterPropertiesSet(); } @Test public void getObjectTest() { Mockito.doNothing().when(redisTemplate).opsForValue().set("spring", "data"); redisTemplate.afterPropertiesSet(); System.out.println(redisTemplate.opsForValue().get("spring")); } } 你可以像这样模拟 redisTemplate : @Mock RedisTemplate<String, String> redisTemplate; @Mock private ValueOperations valueOperations; @Before public void setUp() { MockitoAnnotations.initMocks(this); Mockito.when(redisTemplate.opsForValue()).thenReturn(valueOperations); Mockito.doNothing().when(valueOperations).set(anyString(), anyString()); } 您正在通过构造函数创建redisTemplate,并且它不是通过DI获取的。尝试使用@Spy注释: @Spy private RedisTemplate redisTemplate = new RedisTemplate(); 它将允许 DI 注入您的 RedisTemplate 实例。 对于那些想要对 HashOperations get() 和 put() 做同样事情的人 @Mock RedisTemplate<String, String> redisTemplate; @Mock private HashOperations hashOperations; @Test void getFromCache() { Mockito.when(redisTemplate.opsForHash()).thenReturn(hashOperations); when(hashOperations.get("test-key", "test-hash-key")).thenReturn("value123"); RedisCacheServiceImpl cacheService = new RedisCacheServiceImpl(redisTemplate); assertEquals("value123", cacheService.getFromCache("test-key", "test-hash-key")); } 希望对您有帮助;) 当我面临类似的任务时,我制作了一个基于 mock-jedis 的工具(注释)来以简单的方式解决它。您可以在这里阅读:https://github.com/incu6us/redis-mock-template 或者只是向您的项目添加依赖项: <dependency> <groupId>com.github.incu6us.redis</groupId> <artifactId>redis-mock-template</artifactId> <version>0.0.1</version> </dependency> 我尝试了各种 jedis 模拟库,这是唯一一个使用池资源的库。其他库,服务器甚至没有启动,有些需要本地 redis 启动并运行。这对 junit 来说是最好的 https://github.com/50onRed/mock-jedis 即使我也面临着类似的问题。 我修复它的步骤 - 向我的测试类添加了 @ExtendWith(SpringExtension.class) 注释。 使用@MockBean注释RedisTemplate @MockBean private RedisTemplate<Integer, String> redisTemplate; 在我的测试方法中,我使用ReflectionTestUtils来设置redisTemplate字段。 ReflectionTestUtils.setField(rm, "redisTemplate", redisTemplate); 到达这里有点晚了。下面是我用 Junit5 的回答 @ExtendWith(MockitoExtension.class) class CashRepoTest { @InjectMocks CashRepo cashRepo; @Mock RedisTemplate<String, Object> template; @Mock ValueOperations<String, Object> valueOperations; @Test void getTest() { Mockito.when(template.opsForValue()) .thenReturn(valueOperations); String expectedValue = "ev"; when(valueOperations.get("test")).thenReturn(expectedValue); assertEquals(expectedValue, cashRepo.getObject("test")); } } 如果您使用 JUnit-5,这些是您需要注意的事情。 @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); Mockito.when(redisTemplate.opsForHash()).thenReturn(hashOperations); } HashOperations 或 ValueOperations 基于您的要求。

回答 8 投票 0

Jedis,无法获取jedis连接:无法从池中获取资源

我在几个线程中看到了答案,但对我来说没有解决,因为我的问题偶尔发生,如果有人有任何想法,请询问这个问题。 我使用的是jedis版本2.8.0,Spring D...

回答 5 投票 0

Spring Boot 3:无法在 Redis 连接问题上优雅地失败和恢复

我有一个使用 Redis 的 Spring Boot API。我试图涵盖这样的情况:当 Redis 由于某种原因出现故障时,我能够处理它,更重要的是从缓存 ag 中恢复和服务......

回答 1 投票 0

Spring data redis zadd 命令缺少 nx|xx|incr 选项

Lettuce 在 2015 年链接上支持 zadd 的 NX|XX|CH|INCR 选项。 但我在Lettuce的包装器Spring data Redis(版本:2.1.5)中找不到任何支持这一点的东西。 看来只有两个 zadd 方法...

回答 2 投票 0

Spring Data Redis:设置密码

我需要从我的微服务提供到 Redis 的安全连接。 因此,如果我想添加支持身份验证的功能,以便客户端可以发送带有密码的 AUTH 命令。参见

回答 2 投票 0

无法获取Jedis连接,无法从池中获取资源

我正在创建一个Web应用程序并使用Redis进行数据存储。 我使用过 JedisPoolConfig (redis client-jedis version 2.9.0) 。 因此,当我在 Apache Jmeter 的帮助下测试我的应用程序时,...

回答 1 投票 0

@EnableRedisRepositories 不起作用并给出错误:无法读取候选组件类

我正在尝试将 Redis 集成到我的 Spring Web 应用程序中,但遇到了很多挑战。由于我想通过 spring 存储库使用 Redis,因此在 Redis 中添加 @EnableRedisRepositories

回答 1 投票 0

‘JedisConnectionFactory’抛出异常;嵌套异常是 java.lang.NoSuchMethodError

我正在尝试在我的 Spring Web 项目中使用 Redis,但遇到了一些冲突。我在我的 pom 中使用以下 jar: org.springframework.data ...

回答 1 投票 0

Spring Redis - 主条目过期后索引未删除

我正在使用 Spring 数据存储库保存新条目。每个条目的 TTL 为 10 秒。 当我保存带有索引的条目时,这是我在 Redis 中得到的内容 127.0.0.1:6379> 键 * 1)“工作:

回答 3 投票 0

Spring Data Redis 在 Redis 服务器中执行 CONFIG、GET 命令时出现 RedisCommandExecutionException

我有一个基于 Spring Boot 3 的项目。它使用 Ridis 服务器作为数据库。 这是一个简单的项目,所有内容都是由 spring-boot-starter-data-redis 模块自动配置的 实体: @数据 @

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.