package com.zy.bms.redis; import com.alibaba.fastjson.JSON; import com.zy.bms.common.Constant; import com.zy.bms.model.DeviceLocation; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.concurrent.TimeUnit; /** * 设备信息,存放在缓存中的数据 * * @author yang xiao kun * create on 2021/2/8 */ @Component public class DeviceManager { @Resource private RedisTemplate redisTemplate; /** * 将最新位置信息保存至redis中 * 24小时过期 * * @param entity 位置信息 */ public void saveLocation(DeviceLocation entity) { redisTemplate.opsForValue() .set(Constant.REDIS_PREFIX_LOCATION + entity.getDeviceId(), JSON.toJSONString(entity), 24, TimeUnit.HOURS); } /** * 获取设备最新位置信息 * * @param deviceId 设备ID */ public DeviceLocation getLocation(String deviceId) { String json = redisTemplate.opsForValue().get(Constant.REDIS_PREFIX_LOCATION + deviceId); if (json == null || json.equals("")) return null; return JSON.parseObject(json, DeviceLocation.class); } }