1.在pom中配置redis的相关依赖包:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.3.8.RELEASE</version> </dependency>
2.在application.yml里面配置redis的配置项
spring: redis: host: 127.0.0.1 port: 8979 password: pool: max-active: 100 max-idle: 10 max-wait: 100000 timeout: 0
3.使用RedisTemplate操作redis
RedisConfig.java
@Configuration @EnableAutoConfiguration public class RedisConfig { //获取JedisPoolConfig配置 @Bean @ConfigurationProperties(prefix = "spring.redis.pool") public JedisPoolConfig getRedisConfig(){ JedisPoolConfig config = new JedisPoolConfig(); return config; } //获取JedisConnectionFactory工厂 @Bean //读取配置文件的信息 @ConfigurationProperties(prefix = "spring.redis") public JedisConnectionFactory getConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setUsePool(true); int port =factory.getPort(); System.out.println("factory1223123123123123"+port); JedisPoolConfig config = getRedisConfig(); factory.setPoolConfig(config); return factory; } //获取RedisTemplate模板。 @Bean public RedisTemplate<?, ?> getRedisTemplate() { JedisConnectionFactory factory = getConnectionFactory(); RedisTemplate<?, ?> template = new StringRedisTemplate(factory); return template; } }
RedisService.java
public interface RedisService { /** * set存数据 * @param key * @param value * @return */ boolean set(String key, String value); /** * get获取数据 * @param key * @return */ String get(String key); /** * 设置有效天数 * @param key * @param expire * @return */ boolean expire(String key, long expire); /** * 移除数据 * @param key * @return */ boolean remove(String key);
RedisServiceImpl
@Service("redisService") public class RedisServiceImpl implements RedisService { @Resource private RedisTemplate<String, ?> redisTemplate; @Override public boolean set(final String key, final String value) { boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = redisTemplate.getStringSerializer(); connection.set(serializer.serialize(key), serializer.serialize(value)); return true; } }); return result; } @Override public String get(final String key) { String result = redisTemplate.execute(new RedisCallback<String>() { @Override public String doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = redisTemplate.getStringSerializer(); byte[] value = connection.get(serializer.serialize(key)); return serializer.deserialize(value); } }); return result; } @Override public boolean expire(final String key, long expire) { return redisTemplate.expire(key, expire, TimeUnit.SECONDS); } @Override public boolean remove(final String key) { boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { @Override public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = redisTemplate.getStringSerializer(); connection.del(key.getBytes()); return true; } }); return result; } }
测试类
RedisTests.java
@RunWith(SpringRunner.class) @SpringBootTest public class RedisTests{
@Autowired private RedisService redisService; @Test public void contextLoads() throws Exception { } /** * 插入字符串 */ @Test public void setString() { redisService.set("redis_string_test", "springboot redis test"); } /** * 获取字符串 */ @Test public void getString() { String result = redisService.get("redis_string_test"); System.out.println(result); }
}