springboot使用RedisTemplate

导入pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
</dependency>

连接工具类

//可用连接实例的最大数目,默认为8;
 //如果赋值为-1,则表示不限制,如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)
 private static final Integer MAX_TOTAL = 1024;
 //控制一个pool最多有多少个状态为idle(空闲)的jedis实例,默认值是8
 private static final Integer MAX_IDLE = 200;
 private static final Integer MIN_IDLE = 2;
 //访问密码
 private static final String REDIS_PASSWORD = "xxxx";
 //获取失败最大重定向次数
 private static final Integer MAX_REDIRECTS = 3;
public static RedisTemplate<String, Object> createRedisTemplate(String hostName) {
	   GenericObjectPoolConfig<Object> poolConfig = new GenericObjectPoolConfig<>();
	   poolConfig.setMaxTotal(MAX_TOTAL);
	   poolConfig.setMaxIdle(MAX_IDLE);
	   poolConfig.setMinIdle(MIN_IDLE);
	
	   Map<String, Object> source = new HashMap<>(8);
	   source.put("spring.redis.cluster.nodes", hostName);
	   RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(new MapPropertySource("RedisClusterConfiguration", source));
	   redisClusterConfiguration.setPassword(REDIS_PASSWORD);
	   redisClusterConfiguration.setMaxRedirects(MAX_REDIRECTS);
	
	   LettuceClientConfiguration clientConfiguration = LettucePoolingClientConfiguration.builder().poolConfig(poolConfig).build();
	   LettuceConnectionFactory factory = new LettuceConnectionFactory(redisClusterConfiguration, clientConfiguration);
	   //配置pipeline,redis命令一次性发送
	   factory.setPipeliningFlushPolicy(LettuceConnection.PipeliningFlushPolicy.flushOnClose());
	
	   factory.afterPropertiesSet();
	
	   RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
	   redisTemplate.setConnectionFactory(factory);
	
	   // key序列化数据结构
	   StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
	   redisTemplate.setKeySerializer(stringRedisSerializer);
	
	   // value序列化数据结构
	   Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
	   redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
	
	   // hash数据结构序列化方式,必须这样否则存hash 就是基于jdk序列化的
	   redisTemplate.setHashKeySerializer(stringRedisSerializer);
	   redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
	
	   // 启用默认序列化方式
	   redisTemplate.setEnableDefaultSerializer(true);
	   redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
	
	   redisTemplate.afterPropertiesSet();
	   return redisTemplate;
	}

使用

连接redis

//连接redis
//redisIp:是一串以,分隔的字符串,如:127.0.0.1:6379,xx.xx.xx.xx:6379,.....
RedisTemplate<String, Object> redisTemplate = JDBCAndRedisUtils.createRedisTemplate(redisIp);

操作redis

操作都是一些api,这里就不描述了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot提供了对Redis的支持,可以使用RedisTemplate来操作Redis数据库。RedisTemplate是Spring提供的一个对Redis操作的模板类,它封装了Redis的常见操作,可以方便地进行Redis数据的读写。 下面是一个使用RedisTemplate操作Redis的示例: 1. 配置Redis连接信息 在application.properties或application.yml文件中添加Redis连接信息: ``` spring.redis.host=localhost spring.redis.port=6379 ``` 2. 创建RedisTemplate 在Spring Boot中,可以通过注入RedisConnectionFactory来创建RedisTemplate。 ``` @Configuration public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } } ``` 3. 使用RedisTemplate操作Redis 通过RedisTemplate可以进行Redis的常见操作,例如: ``` @Autowired private RedisTemplate<String, Object> redisTemplate; // 写入缓存 redisTemplate.opsForValue().set("key", "value"); // 读取缓存 Object value = redisTemplate.opsForValue().get("key"); // 删除缓存 redisTemplate.delete("key"); ``` 除了opsForValue()方法外,RedisTemplate还提供了opsForHash()、opsForList()、opsForSet()、opsForZSet()等方法,分别用于操作Redis的哈希、列表、集合、有序集合等数据结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值