@Bean //TODO: replace with ReactiveStringRedisTemplate in future public ReactiveRedisTemplate<String, String> stringReactiveRedisTemplate( ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) { RedisSerializer<String> serializer = new StringRedisSerializer(); RedisSerializationContext<String , String> serializationContext = RedisSerializationContext .<String, String>newSerializationContext() .key(serializer) .value(serializer) .hashKey(serializer) .hashValue(serializer) .build(); return new ReactiveRedisTemplate<>(reactiveRedisConnectionFactory, serializationContext); }
private ReactiveRedisTemplate<String, Object> createReactiveRedisTemplate() { RedisSerializer<String> keySerializer = new StringRedisSerializer(); RedisSerializer<Object> defaultSerializer = (this.defaultRedisSerializer != null) ? this.defaultRedisSerializer : new JdkSerializationRedisSerializer(this.classLoader); RedisSerializationContext<String, Object> serializationContext = RedisSerializationContext .<String, Object>newSerializationContext(defaultSerializer) .key(keySerializer).hashKey(keySerializer).build(); return new ReactiveRedisTemplate<>(this.redisConnectionFactory, serializationContext); }
@Test @SuppressWarnings("unused") public void newReactiveRedisOperationsSessionRepository() { LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(); RedisSerializationContext<String, Object> serializationContext = RedisSerializationContext .<String, Object>newSerializationContext( new JdkSerializationRedisSerializer()) .build(); // tag::new-reactiveredisoperationssessionrepository[] // ... create and configure connectionFactory and serializationContext ... ReactiveRedisTemplate<String, Object> redisTemplate = new ReactiveRedisTemplate<>( connectionFactory, serializationContext); ReactiveSessionRepository<? extends Session> repository = new ReactiveRedisOperationsSessionRepository(redisTemplate); // end::new-reactiveredisoperationssessionrepository[] }
/** * Create a new {@link DefaultStreamReceiver} given {@link ReactiveRedisConnectionFactory} and * {@link org.springframework.data.redis.stream.StreamReceiver.StreamReceiverOptions}. * * @param connectionFactory must not be {@literal null}. * @param options must not be {@literal null}. */ @SuppressWarnings("unchecked") DefaultStreamReceiver(ReactiveRedisConnectionFactory connectionFactory, StreamReceiverOptions<K, V> options) { receiverOptions = options; RedisSerializationContext<K, Object> serializationContext = RedisSerializationContext .<K, Object> newSerializationContext(options.getKeySerializer()) // .key(options.getKeySerializer()).hashKey(options.getHashKeySerializer()) .hashValue(options.getHashValueSerializer()).build(); StreamReadOptions readOptions = StreamReadOptions.empty(); if (options.getBatchSize().isPresent()) { readOptions = readOptions.count(options.getBatchSize().getAsInt()); } if (!options.getPollTimeout().isZero()) { readOptions = readOptions.block(options.getPollTimeout()); } this.readOptions = readOptions; this.template = new ReactiveRedisTemplate(connectionFactory, serializationContext); if (options.getHashMapper() != null) { this.streamOperations = this.template.opsForStream(options.getHashMapper()); } else { this.streamOperations = this.template.opsForStream(); } }
/** * init ReactiveRedisTemplate. * * @param reactiveRedisConnectionFactory {@linkplain ReactiveRedisConnectionFactory} * @return {@linkplain ReactiveRedisTemplate} */ @Bean @Qualifier("reactiveRedisTemplate") public ReactiveRedisTemplate<String, String> stringReactiveRedisTemplate(final ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) { RedisSerializer<String> serializer = new StringRedisSerializer(); RedisSerializationContext<String, String> serializationContext = RedisSerializationContext .<String, String>newSerializationContext() .key(serializer) .value(serializer) .hashKey(serializer) .hashValue(serializer) .build(); return new ReactiveRedisTemplate<>(reactiveRedisConnectionFactory, serializationContext); }
@Bean public ReactiveRedisTemplate<String, String> reactiveRedisTemplate(ReactiveRedisConnectionFactory connectionFactory) { return new ReactiveRedisTemplate<>(connectionFactory, RedisSerializationContext.string()); }
@Bean public ReactiveRedisTemplate<String, Post> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) { return new ReactiveRedisTemplate<String, Post>( factory, RedisSerializationContext.fromSerializer(new Jackson2JsonRedisSerializer(Post.class)) ); }
@Bean public ReactiveRedisTemplate<String, Post> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) { return new ReactiveRedisTemplate<String, Post>( factory, RedisSerializationContext.fromSerializer(new Jackson2JsonRedisSerializer(Post.class)) ); }
@Bean ReactiveRedisOperations<String, Object> redisOperations(ReactiveRedisConnectionFactory factory) { Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class); RedisSerializationContext.RedisSerializationContextBuilder<String, Object> builder = RedisSerializationContext .newSerializationContext(new StringRedisSerializer()); RedisSerializationContext<String, Object> context = builder.value(serializer).build(); return new ReactiveRedisTemplate<>(factory, context); }
@Bean public ReactiveRedisTemplate<String, Post> reactiveJsonPostRedisTemplate( ReactiveRedisConnectionFactory connectionFactory) { RedisSerializationContext<String, Post> serializationContext = RedisSerializationContext .<String, Post>newSerializationContext(new StringRedisSerializer()) .hashKey(new StringRedisSerializer()) .hashValue(new Jackson2JsonRedisSerializer<>(Post.class)) .build(); return new ReactiveRedisTemplate<>(connectionFactory, serializationContext); }