RedisConfig.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package jnpf.config;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.data.redis.connection.RedisConnectionFactory;
  7. import org.springframework.data.redis.core.*;
  8. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
  9. import org.springframework.data.redis.serializer.StringRedisSerializer;
  10. /**
  11. *
  12. * @author JNPF开发平台组
  13. * @version V3.1.0
  14. * @copyright 引迈信息技术有限公司
  15. * @date 2021/3/16 10:51
  16. */
  17. @Configuration
  18. public class RedisConfig {
  19. /**
  20. * 注入 RedisConnectionFactory
  21. */
  22. @Autowired
  23. private RedisConnectionFactory factory;
  24. /**
  25. * 实例化 RedisTemplate 对象
  26. *
  27. * @return
  28. */
  29. @Bean
  30. public RedisTemplate<String, Object> redisTemplate() {
  31. RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
  32. redisTemplate.setConnectionFactory(factory);
  33. StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
  34. redisTemplate.setKeySerializer(stringRedisSerializer);
  35. redisTemplate.setHashKeySerializer(stringRedisSerializer);
  36. Jackson2JsonRedisSerializer<?> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
  37. redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
  38. redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
  39. redisTemplate.afterPropertiesSet();
  40. return redisTemplate;
  41. }
  42. /**
  43. * 实例化 HashOperations 对象,可以使用 Hash 类型操作
  44. *
  45. * @param redisTemplate
  46. * @return
  47. */
  48. @Bean
  49. public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
  50. return redisTemplate.opsForHash();
  51. }
  52. /**
  53. * 实例化 ValueOperations 对象,可以使用 String 操作
  54. *
  55. * @param redisTemplate
  56. * @return
  57. */
  58. @Bean
  59. public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
  60. return redisTemplate.opsForValue();
  61. }
  62. /**
  63. * 实例化 ListOperations 对象,可以使用 List 操作
  64. *
  65. * @param redisTemplate
  66. * @return
  67. */
  68. @Bean
  69. public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
  70. return redisTemplate.opsForList();
  71. }
  72. /**
  73. * 实例化 SetOperations 对象,可以使用 Set 操作
  74. *
  75. * @param redisTemplate
  76. * @return
  77. */
  78. @Bean
  79. public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
  80. return redisTemplate.opsForSet();
  81. }
  82. /**
  83. * 实例化 ZSetOperations 对象,可以使用 ZSet 操作
  84. *
  85. * @param redisTemplate
  86. * @return
  87. */
  88. @Bean
  89. public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
  90. return redisTemplate.opsForZSet();
  91. }
  92. }