Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Redis - Cách định cấu hình chuyển đổi tùy chỉnh

Đã kiểm tra với spring-boot-starter-data-redis:2.0.4.RELEASE .

Tôi đang gặp sự cố trong đó OffsetDateTime của mình thuộc tính của @RedisHash của tôi thực thể không được lưu trữ khi sử dụng CrudRepository .

Vấn đề là Jsr310Converters không có trình chuyển đổi OffsetDateTime .

Để giải quyết vấn đề này, tôi đã tạo một trình chuyển đổi đọc:

@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);
    }
}

và viết công cụ chuyển đổi:

@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();
    }
}

Và đã đăng ký RedisCustomConversions bean trong cấu hình:

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. StackExchange.Redis:Truy cập hàng loạt cho nhiều hàm băm

  2. Làm cách nào để kiểm tra xem redis có đang chạy hay không trước khi tôi khởi động bình (và khởi động nếu không)?

  3. Cách mở rộng SignalR bằng Azure Worker Role và OWIN

  4. Ai đó có thể giải thích lệnh redis setbit?

  5. redis timeout với predis