如何解决redisTemplate.opsForValue().get('id') 返回始终为空
每次我调用 opsForValue().get('id') 而值存在时,我都会得到空结果。
我的配置类:
const myDivs = [];
for (const div of await page.$$("div.b-swatch-value-wrapper")) {
if (await div.$("span.b-swatch-value--orderable") !== null) {
myDivs.push(div);
}
}
我的服务类:
@Configuration
public class CacheConfiguration {
@Bean
public ReactiveRedisOperations<String,Shop> shopRedisOperations(
ReactiveRedisConnectionFactory factory) {
Jackson2JsonRedisSerializer<Shop> serializer = new Jackson2JsonRedisSerializer<>(Shop.class);
RedisSerializationContext.RedisSerializationContextBuilder<String,Shop> builder =
RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
RedisSerializationContext<String,Shop> context = builder.value(serializer).build();
return new ReactiveRedistemplate<>(factory,context);
}
@Bean
public ReactiveValueOperations<String,Shop> shopCacheValueOps(ReactiveRedisOperations<String,Shop> template) {
return template.opsForValue();
}
}
注意:@Service
public class MyService {
private final ReactiveValueOperations<String,Shop> shopsOps;
public Mono<Shop> getShop(String shopId) {
return shopsOps.get(shopId)
.switchIfEmpty(Mono.defer(() -> loadFromDb(shopId)
.doOnNext(shop -> shopsOps.set(shopId,shop).subscribe())
.switchIfEmpty(Mono.error(() -> new NotFoundException()))));
}
}
正确地将数据保存在 Redis 中,但 shopsOps.set(shopId,shop).subscribe()
不断返回空;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。