@Scheduled(cron = "0 00 03 * * ?")
public void productPackageRedis(){
//遍历集合
productService.getQueryAllProductStock().forEach(p->{
//实体类
List<QueryPackages> js = new ArrayList<>();
js.add(p);
//转换成json
String productPackageRedisJson = JSON.toJSONString(js);
if(!redisProductUtil.exitsKey(p.getCas())){
redisProductUtil.set(p.getCas(),productPackageRedisJson);
}else {
redisProductUtil.set(p.getCas(),JSON.toJSONString(productService.getQueryProductStock(p.getCas())));
}
});
}
工具包:
package leyan.admin.util;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@Component
@RequiredArgsConstructor
public class RedisProductUtil {
@Autowired
@Qualifier("redisProductTemplate")
private RedisTemplate<String, String> redisTemplate;
/**
* 实现命令:DEL key,删除一个key
*
* @param key
*/
public void del(String key) {
redisTemplate.delete(key);
}
/**
* 实现命令:删除所有键值对
*/
public void delAll() {
Set<String> keys = redisTemplate.keys("*");
redisTemplate.delete(keys);
}
/**
* 实现命令:SET key value,设置一个key-value(将字符串值 value关联到 key)
*
* @param key
* @param value
*/
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
/**
* 实现命令:GET key,返回 key所关联的字符串值。
*
* @param key
* @return value
*/
public String get(String key) {
return (String) redisTemplate.opsForValue().get(key);
}
/**
* 存入redis 设置自定义有效时间的缓存
*/
public void setCacheWithCustomerTime(String key, String value, long minute) {
redisTemplate.opsForValue().set(key, value, minute, TimeUnit.MINUTES);
}
/**
* 判断redis是否存在
*/
public boolean exitsKey(String key) {
return redisTemplate.hasKey(key);
}
}