sql >> データベース >  >> NoSQL >> Redis

SpringDataRedisの有効期限キー

    SpringDataRedisを使用しています。

    @Redishash(timeToLive=300)を使用しています 300秒後にエンティティを期限切れにするアノテーション。

    これが私のpom.xmlからの抜粋です

    ...
    ...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    ...
    ...
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
    ...
    ...
    

    私のRedisConfig.class

    @Configuration
    @Log4j2
    @EnableRedisRepositories(basePackageClasses = ConsentOTP.class)
    public class RedisConfig {
    
        @Value("${spring.redis.host}")
        private String host;
    
        @Value("${spring.redis.port}")
        private Integer port;
    
        @Value("${spring.redis.password}")
        private String password;
    
        @Bean
        JedisConnectionFactory jedisConnectionFactory() {
            log.info("=================================================================");
            log.info("redis config : {} : {} ", host, port);
            log.info("=================================================================");
    
            RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);
            config.setPassword(RedisPassword.of(password));
            return new JedisConnectionFactory(config);
        }
    
    }
    

    そして私のエンティティクラスConsentOtp.class

    @RedisHash(value = "ConsentOTP", timeToLive = 300)
    @Data
    @NoArgsConstructor
    public class ConsentOTP implements Serializable {
    
        private static final long serialVersionUID = 1708925807375596799L;
    
        private String id;
        private LocalDateTime timestamp;
        private String otp;
    
        public ConsentOTP(String personId, LocalDateTime timestamp, String otp) {
            this.id = personId;
            this.timestamp = timestamp;
            this.otp = otp;
        }
    }
    

    これが私のRedisリポジトリです

    public interface ConsentOtpRepository extends CrudRepository<ConsentOTP, String> {
        
    }
    


    1. 値と条件でグループ化

    2. mongodbで変更されたドキュメントの通知を受け取る

    3. PerconaLive2017-Severeninesのまとめ

    4. Meteor:コレクション、変数、パブリケーション、サブスクリプションの名前の違いは?