プロジェクトで Spring redis リポジトリを使用して、POJO を redis に永続化しています。次の例は、私が達成しようとしていることの詳細です。
@Data
@RedisHash("Example")
public class Example {
@Id
private String id;
private String attributeA;
private String attirbuteB;
@TimeToLive(unit = TimeUnit.SECONDS)
private Long timeToLive;
}
上記の POJO のリポジトリは次のようになります。
public interface ExampleRepository extends CrudRepository<Example, String> {
}
@TimeToLive は、有効期限を redis に設定する際にうまく機能します。私のコードでは、timeToLive = 1200 の値を設定しようとしました。コードは次のようになります...
Example example = new Example();
example.setId("abc");
example.setTimeToLive(1200L);
exampleRepository.save(example);
私の問題は、redis から POJO を取得しようとしたときに始まります。
Example example = exampleRepository.findOne(id);
System.out.println(example.getTimeToLive());
上記のコードは、出力として常に 1200 を出力します。CLI から、redis に存在するオブジェクトの TTL が時間の経過とともに減少していることを確認できます。それでも、取得しようとしている POJO に設定されていません。
この POJO インスタンスの redis に設定されている ttl の現在の値を取得できないのはなぜですか?
spring redis リポジトリを使用してこれを達成する別の方法はありますか?
前もって感謝します!