在SpringBoot中一般使用RedisTemplate提供的方法来操作Redis。那么使用SpringBoot整合Redis
需要那些步骤呢。
环境安装(任选)
Centos7 搭建redis-5单机服务
CentOs7 搭建 Redis-5 Cluster 集群服务
在项目中添加 spring-boot-starter-data-redis 依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
@Configuration public class RedisConfig { @Bean public StringRedisTemplate redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate redisTemplate = new StringRedisTemplate(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer( Object.class); ObjectMapper om = new ObjectMapper(); om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); //设置完这个可以直接将对象以json格式存入redis中,但是取出来的时候要用JSON.parseArray(Json.toJsonString(object),Object.class)解析一下 redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); //调用后完成设置 redisTemplate.afterPropertiesSet(); return redisTemplate; } }
application.yml
redis: # Redis数据库索引(默认为0) database: 0 # Redis服务器地址 host: 127.0.0.1 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) password: # 连接池最大连接数(使用负值表示没有限制) pool: max-Active: 8 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1 # 连接池中的最大空闲连接 max-idle: 8 # 连接池中的最小空闲连接 min-idle: 0 # 连接超时时间(毫秒) 不能设为0 不然启动连接报超时异常 timeout: 500
//一定要扫描 不然直接使用工具类报空指针异常 @Compent public class CacheUtils { @Autowired private RedisTemplate 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 多方法 。。。。。。 */ }
@RunWith(SpringRunner.class) @SpringBootTest(classes = App.class) public class AppTest { @Test public void test() throws Exception { CacheUtils.hashSet("test", "ymq", "www.ymq.io"); System.out.println(CacheUtils.hashGet("test", "ymq")); } }
代码我已放到 码云,导入 SpringBoot-Examples 项目
https://gitee.com/luoluo1995/...
<center>长按二维码关注我们</center>