简介
RedisExtUtil 是一个基于 Spring 和 RedisTemplate 的扩展工具类,旨在提供更便捷的 Redis 操作方法,包括基础的 Key-Value 操作、分布式锁以及批量操作。本篇博客将介绍该工具类的核心功能及其批量操作的使用方法。
仅仅提供参考
前置准备
在使用 RedisExtUtil 工具类之前,需要确保以下准备工作:
- Spring 配置
<!-- 这里排除了lettuce 根据情况需不需要排除 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
- Spring 配置
@Bean
public <T> RedisTemplate<String, T> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, T> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new FastJson2JsonRedisSerializer<>(Object.class));
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new FastJson2JsonRedisSerializer<>(Object.class));
template.afterPropertiesSet();
return template;
}
public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> {
...省略
}
- Hutool 工具类依赖
这些依赖非关键代码,可以根据需求自行替换
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.extra.spring.SpringUtil;
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.19</version>
</dependency>
- 线程池配置
@Bean
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 核心线程数 根据设备情况而定 这里只做演示
executor.setCorePoolSize(10);
// 最大线程数 根据设备情况而定 这里只做演示
executor.setMaxPoolSize(100);
// 队列大小 根据设备情况而定 这里只做演示
executor.setQueueCapacity(9999);
// 当最大池已满时,此策略保证不会丢失任务请求,但是可能会影响应用程序整体性能。 根据设备情况而定 这里只做演示
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setThreadNamePrefix("异步线程-");
executor.initialize();
return executor;
}
- Redis 服务
确保 Redis 服务已启动,并配置正确的连接参数。
基础方法
获取 RedisTemplate
public static <T> RedisTemplate<String, T> getDefaultRedisTemplate() {
return SpringUtil.getBean("objectRedisTemplate", RedisTemplate.class);
}
1.Key 的生成规则
public static String calcKey(String prefix, String key) {
return StrUtil.isBlank(prefix) ? key : prefix + key;
}
2.写入数据
public static <T> void put(String prefix, String key, T value) {
put(getDefaultRedisTemplate(), prefix, key, value);
}
public static <T> void put(RedisTemplate<String, T> redisTe

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



