Springboot 批量增加redis中的数据,并批量设置过期时间
在Spring Boot中,你可以使用StringRedisTemplate
或RedisTemplate
来批量设置Redis数据并设置过期时间。以下是一个使用StringRedisTemplate
批量设置字符串值并设置过期时间的例子:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Service
public class RedisService {
@Autowired
private StringRedisTemplate stringRedisTemplate;
public void setKeysWithExpiry(Map<String, String> keysWithValues, long timeout, TimeUnit timeUnit) {
if (keysWithValues != null && !keysWithValues.isEmpty()) {
stringRedisTemplate.opsForValue().multiSet(keysWithValues);
keysWithValues.forEach((key, value) -> stringRedisTemplate.expire(key, timeout, timeUnit));
}
}
// 示例方法,批量设置键值对并设置过期时间
public void batchSetWithExpiry() {
Map<String, String> keysWithValues = new HashMap<>();
keysWithValues.put("key1", "value1");
keysWithValues.put("key2", "value2");
keysWithValues.put("key3", "value3");
// 设置过期时间为10分钟
long timeout = 10;
TimeUnit timeUnit = TimeUnit.MINUTES;
setKeysWithExpiry(keysWithValues, timeout, timeUnit);
}
}
在这个例子中,setKeysWithExpiry
方法接收一个键值对映射和一个过期时间以及时间单位。然后它使用multiSet
批量设置键值对,并对每个键使用expire
方法单独设置过期时间。
请注意,如果你的数据不是字符串,你需要使用RedisTemplate
的对应方法,并为你的数据类型指定正确的序列化器。
评论已关闭