Refine search
/** * Creates a new {@link RedisSerializationContextBuilder} using a given default {@link RedisSerializer}. * * @param defaultSerializer must not be {@literal null}. * @param <K> expected key type. * @param <V> expected value type. * @return a new {@link RedisSerializationContextBuilder}. */ static <K, V> RedisSerializationContextBuilder<K, V> newSerializationContext(RedisSerializer<?> defaultSerializer) { Assert.notNull(defaultSerializer, "DefaultSerializer must not be null!"); return newSerializationContext(SerializationPair.fromSerializer(defaultSerializer)); }
/** * Creates a new {@link RedisSerializationContext} using a {@link JdkSerializationRedisSerializer}. * * @return new instance of {@link RedisSerializationContext}. * @since 2.1 */ static RedisSerializationContext<Object, Object> java() { return fromSerializer(RedisSerializer.java()); }
/** * Configure a key, hash key and hash value serializer. * * @param serializationContext must not be {@literal null}. * @return {@code this} {@link StreamReceiverOptionsBuilder}. */ @SuppressWarnings("unchecked") public <T> StreamReceiverOptionsBuilder<T, MapRecord<T, T, T>> serializer( RedisSerializationContext<T, ?> serializationContext) { Assert.notNull(serializationContext, "RedisSerializationContext must not be null"); this.keySerializer = (SerializationPair) serializationContext.getKeySerializationPair(); this.hashKeySerializer = serializationContext.getHashKeySerializationPair(); this.hashValueSerializer = serializationContext.getHashValueSerializationPair(); return (StreamReceiverOptionsBuilder) this; }
@Override public Mono<Long> convertAndSend(String destination, V message) { Assert.hasText(destination, "Destination channel must not be empty!"); Assert.notNull(message, "Message must not be null!"); return createMono(connection -> connection.pubSubCommands().publish( getSerializationContext().getStringSerializationPair().write(destination), getSerializationContext().getValueSerializationPair().write(message))); }
private SerializationPair<V> value() { return serializationContext.getValueSerializationPair(); }
private SerializationPair<K> key() { return serializationContext.getKeySerializationPair(); }
@SuppressWarnings("unchecked") private HV deserializeHashValue(ByteBuffer buffer) { return (HV) serializationContext.getHashValueSerializationPair().read(buffer); }
@Test @SuppressWarnings("unchecked") public void customRedisSerializerConfig() { registerAndRefresh(RedisConfig.class, CustomRedisSerializerConfig.class); ReactiveRedisOperationsSessionRepository repository = this.context .getBean(ReactiveRedisOperationsSessionRepository.class); RedisSerializer<Object> redisSerializer = this.context .getBean("springSessionDefaultRedisSerializer", RedisSerializer.class); assertThat(repository).isNotNull(); assertThat(redisSerializer).isNotNull(); ReactiveRedisOperations redisOperations = (ReactiveRedisOperations) ReflectionTestUtils .getField(repository, "sessionRedisOperations"); assertThat(redisOperations).isNotNull(); RedisSerializationContext serializationContext = redisOperations .getSerializationContext(); assertThat(ReflectionTestUtils.getField( serializationContext.getValueSerializationPair().getReader(), "serializer")).isEqualTo(redisSerializer); assertThat(ReflectionTestUtils.getField( serializationContext.getValueSerializationPair().getWriter(), "serializer")).isEqualTo(redisSerializer); assertThat(ReflectionTestUtils.getField( serializationContext.getHashValueSerializationPair().getReader(), "serializer")).isEqualTo(redisSerializer); assertThat(ReflectionTestUtils.getField( serializationContext.getHashValueSerializationPair().getWriter(), "serializer")).isEqualTo(redisSerializer); }
/** * Creates new {@link ReactiveRedisTemplate} using given {@link ReactiveRedisConnectionFactory} applying default * {@link String} serialization. * * @param connectionFactory must not be {@literal null}. * @see RedisSerializationContext#string() */ public ReactiveStringRedisTemplate(ReactiveRedisConnectionFactory connectionFactory) { this(connectionFactory, RedisSerializationContext.string()); }
@SuppressWarnings("unchecked") private HK readHashKey(ByteBuffer value) { return (HK) serializationContext.getHashKeySerializationPair().read(value); }
private V readValue(ByteBuffer buffer) { return serializationContext.getValueSerializationPair().read(buffer); } }
@Override public Flux<? extends Message<String, V>> listenTo(Topic... topics) { ReactiveRedisMessageListenerContainer container = new ReactiveRedisMessageListenerContainer(getConnectionFactory()); return container .receive(Arrays.asList(topics), getSerializationContext().getStringSerializationPair(), getSerializationContext().getValueSerializationPair()) // .doFinally((signalType) -> container.destroyLater().subscribeOn(Schedulers.elastic())); }
protected SerializationPair<K> keySerializer() { return serializationContext.getKeySerializationPair(); }
@SuppressWarnings("unchecked") private HV readHashValue(ByteBuffer value) { return (HV) (value == null ? value : serializationContext.getHashValueSerializationPair().read(value)); }
/** * Creates new {@link ReactiveRedisTemplate} using given {@link ReactiveRedisConnectionFactory} applying default * {@link String} serialization. * * @param connectionFactory must not be {@literal null}. * @see RedisSerializationContext#string() */ public ReactiveStringRedisTemplate(ReactiveRedisConnectionFactory connectionFactory) { this(connectionFactory, RedisSerializationContext.string()); }
private ByteBuffer rawHashKey(HK key) { return serializationContext.getHashKeySerializationPair().write(key); }
/** * Creates a new {@link RedisSerializationContext} using the given {@link SerializationPair}. * * @param serializationPair * @param <T> * @return */ static <T> RedisSerializationContext<T, T> just(SerializationPair<T> serializationPair) { return RedisSerializationContext.<T, T> newSerializationContext(serializationPair).build(); }
private ByteBuffer rawValue(V value) { return serializationContext.getValueSerializationPair().write(value); } }
/** * Creates a new {@link RedisSerializationContext} using a {@link StringRedisSerializer}. * * @return */ static RedisSerializationContext<String, String> string() { return fromSerializer(RedisSerializer.string()); }
@Override public Mono<Long> convertAndSend(String destination, V message) { Assert.hasText(destination, "Destination channel must not be empty!"); Assert.notNull(message, "Message must not be null!"); return createMono(connection -> connection.pubSubCommands().publish( getSerializationContext().getStringSerializationPair().write(destination), getSerializationContext().getValueSerializationPair().write(message))); }