Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
519 views
in Technique[技术] by (71.8m points)

java - Redis Template hash key with expiration

I have

redisTemplate.opsForHash().put(key, hashKey, value);

I need to set key and hash key expire value, and each hash key has expired value, here is the expire for just key

redisTemplate.expire(key, timeout, unit)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

According to the doc of redis, you can expire the whole hash, but not a single key-value pair in it.

Possible ways:

  1. Break your hash into keys. Say, your hash has key myhash and sub-key and value like {apple: foo, banana: bar}. Then just instead create key myhash_apple with value foo, and myhash_banana with value bar.
  2. Manually expire things. Use your code to periodically (say, at midnight) scan those hashs, and remove those outdated.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...