依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>配置文件(application.properties)
# Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=x.x.x.x # Redis服务器连接端口 spring.redis.port=6738 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接超时时间(毫秒) spring.redis.timeout=10000 # 连接池最大连接数(使用负值表示没有限制) spring.redis.jedis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.jedis.pool.max-wait=-1ms # 连接池中的最大空闲连接 spring.redis.jedis.pool.max-idle=8 # 连接池中的最小空闲连接 spring.redis.jedis.pool.min-idle=0
配置文件(RedisConfig.java)
package com.gxr.dmsData.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.text.SimpleDateFormat;
/**
* @author :gongxr
* @description: 自定义RedisTemplate
* @date :Created in 2021/6/30
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 修改key的默认序列化器为 string
RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setDefaultSerializer(stringRedisSerializer);
// 自定义 对象转换
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
Jackson2JsonRedisSerializer<Object> valueSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
valueSerializer.setObjectMapper(objectMapper);
// redisTemplate.setValueSerializer(valueSerializer);
// redisTemplate.setHashValueSerializer(valueSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}测试代码
import com.gxr.dmsData.common.BaseTest;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import java.util.Set;
/**
* @author :gongxr
* @description:
* @date :Created in 2021/6/30
*/
@Slf4j
public class TestRedis extends BaseTest {
@Autowired
private RedisTemplate redisTemplate;
/**
* RedisTemplate中定义了对5种数据结构操作
* redisTemplate.opsForValue();//操作字符串
* redisTemplate.opsForHash();//操作hash
* redisTemplate.opsForList();//操作list
* redisTemplate.opsForSet();//操作set
* redisTemplate.opsForZSet();//操作有序set
*/
@Test
public void testRedisGet() {
String key = "adviceCalculateTime";
Boolean b = redisTemplate.hasKey(key);
log.info("key是否存在:{}", b);
Object o = redisTemplate.boundValueOps(key).get();
log.info(redisTemplate.toString());
log.info("查询结果:{}", o);
}
/**
* map类型
*/
@Test
public void testRedisHash() {
String key = "RRS_CURRENCY_CACHE";
Object o = redisTemplate.boundHashOps(key).get("590");
log.info("查询结果:{}", o.toString());
}
/**
* set类型
*/
@Test
public void testRedisSet() {
String key = "goodsDataSyncSkc:set";
Set set = redisTemplate.boundSetOps(key).members();
log.info("查询结果:{}", set.size());
String s = (String) redisTemplate.boundSetOps(key).randomMember();
log.info("查询结果:{}", s);
}
}以上就是Springboot集成Redis实例分析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号