spring boot整合redis单机

    xiaoxiao2022-07-13  130

    一. 构建spring boot项目

    spring initilalizr构建简单的maven项目,如图:

    点击红色圆圈标注的按钮即可得到下图所示的压缩文件:

    解压后导入到eclipse中,以maven方式导入。

    导入maven项目如图:

     

    二. 使用spring-boot-starter-data-redis连接单机redis

    1.在pom文件中添加spring-boot-starter-data-redis的依赖

    2.在pom文件中添加jedis的依赖

    3.将已有的spring-boot-starter依赖删除,加入spring-boot-starter-web

    4.在application.properties文件中配置redis连接属性,如下图:

    代码如下:

    spring.redis.database=0 spring.redis.host=139.224.117.67 spring.redis.port=6379 spring.redis.password=666666 spring.redis.pool.max-active=200 spring.reids.pool.max-wait=-1 spring.redis.pool.max-idle=10 spring.redis.pool.min-idle=0 spring.redis.timeout=10000

    5.配置RedisTemplate

    package cn.weiweizhen.redisdemo.util;

    import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisClientConfiguration; import org.springframework.data.redis.connection.jedis.JedisClientConfiguration.JedisClientConfigurationBuilder; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import redis.clients.jedis.JedisPoolConfig;

    @Configuration @PropertySource("classpath:application.properties") public class RedisConfig {              @Value("${spring.redis.database}")     private int database;     @Value("${spring.redis.host}")     private String host;     @Value("${spring.redis.port}")     private int port;     @Value("${spring.redis.password}")     private String password;     @Value("${spring.redis.pool.max-active}")     private int maxActive;     @Value("${spring.redis.pool.max-idle}")     private int maxIdle;     @Value("${spring.redis.pool.min-idle}")     private int minIdle;     @Value("${spring.reids.pool.max-wait}")     private int maxWait;          @Bean     public JedisPoolConfig poolConfig(){         JedisPoolConfig poolConfig = new JedisPoolConfig();         poolConfig.setMaxTotal(100);         poolConfig.setMaxWaitMillis(maxWait);         poolConfig.setMinIdle(minIdle);         poolConfig.setMaxIdle(maxIdle);         return poolConfig;     }          @Bean     public RedisStandaloneConfiguration redisStandaloneConfiguration(){         RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();         configuration.setHostName(host);         configuration.setPassword(password);         configuration.setPort(port);         configuration.setDatabase(database);         return configuration;     }          @Bean     public JedisClientConfiguration jedisClientConfiguration(){         JedisClientConfigurationBuilder builder = JedisClientConfiguration.builder();         return builder.usePooling().poolConfig(poolConfig()).build();     }          @Bean     public JedisConnectionFactory connectionFactory(){         JedisConnectionFactory factory = new JedisConnectionFactory(redisStandaloneConfiguration(), JedisClientConfiguration.builder().build());         return factory;     }          @Bean     @SuppressWarnings("rawtypes")     public RedisTemplate redisTemplate(){         StringRedisTemplate template = new StringRedisTemplate(connectionFactory());         GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();         template.setValueSerializer(jackson2JsonRedisSerializer);         return template;     }      }

    6.通过控制器验证redis连接成功,并存取测试。

    package cn.weiweizhen.redisdemo.controller;

    import org.slf4j.Logger; import org.slf4j.LoggerFactory;

    import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;

    @RestController @RequestMapping("/redis") public class TestController {           private static final Logger logger = LoggerFactory.getLogger(TestController.class);              @Autowired     RedisTemplate<String, Object> redisTemplate;          @Autowired     StringRedisTemplate stringRedisTemplate;          @RequestMapping("/set")     public void set() {         redisTemplate.opsForValue().set("test", "4321");     }          @RequestMapping("/show")     public String show(){         logger.info(redisTemplate.opsForValue().get("test").toString());         return "Hello World";     } }

    7.启动项目,在浏览器中访问

    访问地址localhost:8080/redis/show,localhost:8080/redis/set

     

     

     

    最新回复(0)