RedisUtil.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package lingtao.net.util;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. import org.springframework.data.redis.core.RedisTemplate;
  6. import org.springframework.stereotype.Component;
  7. import java.util.concurrent.TimeUnit;
  8. @Component
  9. public class RedisUtil implements ApplicationContextAware {
  10. private static RedisTemplate redisTemplate;
  11. private static ApplicationContext applicationContext;
  12. @Override
  13. public void setApplicationContext(ApplicationContext context) throws BeansException {
  14. applicationContext = context;
  15. redisTemplate = (RedisTemplate) applicationContext.getBean("redisTemplate");
  16. }
  17. /**
  18. * 设置缓存
  19. *
  20. * @param key 键
  21. * @param value 值
  22. */
  23. public static void set(String key, Object value) {
  24. if (redisTemplate != null) {
  25. redisTemplate.opsForValue().set(key, value);
  26. }
  27. }
  28. /**
  29. * 设置缓存(带过期时间)
  30. *
  31. * @param key 键
  32. * @param value 值
  33. * @param expireTime 过期时间(秒)
  34. */
  35. public static void set(String key, Object value, long expireTime) {
  36. if (redisTemplate != null) {
  37. redisTemplate.opsForValue().set(key, value, expireTime, TimeUnit.SECONDS);
  38. }
  39. }
  40. /**
  41. * 获取缓存
  42. *
  43. * @param key 键
  44. * @return 值
  45. */
  46. public static Object get(String key) {
  47. if (redisTemplate != null) {
  48. return redisTemplate.opsForValue().get(key);
  49. }
  50. return null;
  51. }
  52. /**
  53. * 删除缓存
  54. *
  55. * @param key 键
  56. */
  57. public static void delete(String key) {
  58. if (redisTemplate != null) {
  59. redisTemplate.delete(key);
  60. }
  61. }
  62. /**
  63. * 检查键是否存在
  64. *
  65. * @param key 键
  66. * @return 是否存在
  67. */
  68. public static boolean exists(String key) {
  69. if (redisTemplate != null) {
  70. return redisTemplate.hasKey(key);
  71. }
  72. return false;
  73. }
  74. /**
  75. * 设置过期时间
  76. *
  77. * @param key 键
  78. * @param expireTime 过期时间(秒)
  79. * @return 是否成功
  80. */
  81. public static boolean expire(String key, long expireTime) {
  82. if (redisTemplate != null) {
  83. return redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
  84. }
  85. return false;
  86. }
  87. /**
  88. * 获取剩余过期时间
  89. *
  90. * @param key 键
  91. * @return 剩余过期时间(秒)
  92. */
  93. public static long getExpire(String key) {
  94. if (redisTemplate != null) {
  95. return redisTemplate.getExpire(key, TimeUnit.SECONDS);
  96. }
  97. return -1;
  98. }
  99. }