一. 构建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