Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Redis — Jak skonfigurować niestandardowe konwersje

Testowane z spring-boot-starter-data-redis:2.0.4.RELEASE .

Miałem problem z moim OffsetDateTime właściwości mojego @RedisHash encja nie była przechowywana podczas korzystania z CrudRepository .

Problem polegał na tym, że Jsr310Converters nie ma konwertera OffsetDateTime .

Aby rozwiązać ten problem, stworzyłem konwerter odczytu:

@Component
@ReadingConverter
public class BytesToOffsetDateTimeConverter implements Converter<byte[], OffsetDateTime> {
    @Override
    public OffsetDateTime convert(final byte[] source) {
        return OffsetDateTime.parse(new String(source), DateTimeFormatter.ISO_OFFSET_DATE_TIME);
    }
}

i konwerter zapisu:

@Component
@WritingConverter
public class OffsetDateTimeToBytesConverter implements Converter<OffsetDateTime, byte[]> {
    @Override
    public byte[] convert(final OffsetDateTime source) {
        return source.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME).getBytes();
    }
}

I zarejestrował RedisCustomConversions fasola w konfiguracji:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.convert.RedisCustomConversions;
import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;

import java.util.Arrays;

@Configuration
@EnableRedisRepositories
public class RedisConfiguration {

    @Bean
    public RedisCustomConversions redisCustomConversions(OffsetDateTimeToBytesConverter offsetToBytes,
                                                         BytesToOffsetDateTimeConverter bytesToOffset) {
        return new RedisCustomConversions(Arrays.asList(offsetToBytes, bytesToOffset));
    }

}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis skrypt usuwania symboli wieloznacznych za pomocą EVAL, SCAN i DEL zwraca polecenia Write niedozwolone po poleceniach niedeterministycznych

  2. Dlaczego Travis nie może się połączyć, użyj Redis cache_store podczas wdrażania do Heroku?

  3. nie można zabić serwera redis na linuksie

  4. SQL vs NoSQL dla systemu zarządzania zapasami

  5. Redis nie uruchamia się jako usługa systemu Windows w systemie Windows7