ExamSiteCacheService.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.qmth.exam.reserve.cache.impl;
  2. import com.qmth.exam.reserve.bean.examsite.ExamSiteCacheBean;
  3. import com.qmth.exam.reserve.cache.CacheConstants;
  4. import com.qmth.exam.reserve.cache.RedisClient;
  5. import com.qmth.exam.reserve.dao.ExamSiteDao;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Component;
  10. import java.util.concurrent.TimeUnit;
  11. @Component
  12. public class ExamSiteCacheService implements CacheConstants {
  13. private static final Logger log = LoggerFactory.getLogger(ExamSiteCacheService.class);
  14. @Autowired
  15. private RedisClient redisClient;
  16. @Autowired
  17. private ExamSiteDao examSiteDao;
  18. /**
  19. * 获取某个考点缓存
  20. */
  21. public ExamSiteCacheBean getExamSiteById(Long examSiteId) {
  22. String cacheKey = String.format(CACHE_EXAM_SITE, examSiteId);
  23. ExamSiteCacheBean value = redisClient.get(cacheKey, ExamSiteCacheBean.class);
  24. if (value != null) {
  25. return value;
  26. }
  27. value = examSiteDao.findInfoById(examSiteId);
  28. if (value == null) {
  29. return null;
  30. }
  31. redisClient.set(cacheKey, value, 5, TimeUnit.MINUTES);
  32. log.info("SET cacheKey:{}", cacheKey);
  33. return value;
  34. }
  35. public void clearExamSiteByIdCache(Long examSiteId) {
  36. String cacheKey = String.format(CACHE_EXAM_SITE, examSiteId);
  37. redisClient.delete(cacheKey);
  38. log.warn("DELETE cacheKey:{}", cacheKey);
  39. }
  40. }