Spring Boot中除了對經常使用的關係型數據庫提供了優秀的自動化支持以外,對於不少NoSQL數據庫同樣提供了自動化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。java
任選其一git
CentOs7.3 搭建 Redis-4.0.1 單機服務github
CentOs7.3 搭建 Redis-4.0.1 Cluster 集羣服務redis
代碼我已放到 Github ,導入 spring-boot-examples 項目spring
github github.com/souyunku/sp…數據庫
在項目中添加 spring-boot-starter-data-redis
依賴segmentfault
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
複製代碼
@Configuration
public class RedisConfig {
private Logger LOG = LoggerFactory.getLogger(RedisConfig.class);
@Bean
JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> template = new RedisTemplate<String, String>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
LOG.info("create RedisTemplate success");
return template;
}
}
複製代碼
application.properties
bash
# Redis數據庫索引(默認爲0)
spring.redis.database=0
# Redis服務器地址
spring.redis.host=127.0.0.1
# Redis服務器鏈接端口
spring.redis.port=6379
# Redis服務器鏈接密碼(默認爲空)
spring.redis.password=
# 鏈接池最大鏈接數(使用負值表示沒有限制)
spring.redis.pool.max-active=8
# 鏈接池最大阻塞等待時間(使用負值表示沒有限制)
spring.redis.pool.max-wait=-1
# 鏈接池中的最大空閒鏈接
spring.redis.pool.max-idle=8
# 鏈接池中的最小空閒鏈接
spring.redis.pool.min-idle=0
# 鏈接超時時間(毫秒)
spring.redis.timeout=0
複製代碼
public class CacheUtils {
@Resource
private RedisTemplate<String, String> redisTemplate;
private static CacheUtils cacheUtils;
@PostConstruct
public void init() {
cacheUtils = this;
cacheUtils.redisTemplate = this.redisTemplate;
}
/** * 保存到hash集合中 * * @param hName 集合名 * @param key * @param value */
public static void hashSet(String hName, String key, String value) {
cacheUtils.redisTemplate.opsForHash().put(hName, key, value);
}
/** * 從hash集合裏取得 * * @param hName * @param key * @return */
public static Object hashGet(String hName, String key) {
return cacheUtils.redisTemplate.opsForHash().get(hName, key);
}
/** 省略 N 多方法 。。。。。。 */
}
複製代碼
@Configuration
@Import({RedisConfig.class, CacheUtils.class})
public class RedisAutoConfiguration {
}
複製代碼
import io.ymq.redis.utils.CacheUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import io.ymq.redis.run.Application;
import org.springframework.test.context.junit4.SpringRunner;
/** * 描述:測試類 * * @author yanpenglei * @create 2017-10-16 13:18 **/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class BaseTest {
@Test
public void test() throws Exception {
CacheUtils.hashSet("test", "ymq", "www.ymq.io");
System.out.println(CacheUtils.hashGet("test", "ymq"));
}
}
複製代碼
代碼我已放到 Github ,導入 spring-boot-examples 項目服務器
github github.com/souyunku/sp…app