java中redis工具类
时间: 2025-01-07 19:15:22 浏览: 11
### Java Redis 工具类实现示例
#### 封装RedisTemplate配置
为了方便使用Spring Data Redis中的`RedisTemplate`,可以创建一个配置类来初始化它:
```java
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.StringRedisTemplate;
@Configuration
public class RedisConfig {
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
return new StringRedisTemplate(factory);
}
}
```
此部分代码定义了一个名为`stringRedisTemplate`的bean,用于字符串类型的键值存储操作[^1]。
#### 创建通用工具类
接下来是一个简单的Redis工具类实例,提供了基本的数据结构操作方法:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
@Component
public class RedisUtil {
private final RedisTemplate<String, Object> redisTemplate;
@Autowired
public RedisUtil(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
/**
* 设置缓存数据并设置过期时间
*/
public boolean set(String key, Object value, long expireTime) {
try {
redisTemplate.opsForValue().set(key, value);
if (expireTime != -1L) {
redisTemplate.expire(key, expireTime);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 获取指定key的对象
*/
public Object get(final String key) {
return redisTemplate.execute((RedisCallback<Object>) connection -> {
byte[] bytes = connection.get(key.getBytes());
if (bytes == null || bytes.length <= 0) {
return null;
}
return deserialize(bytes); // 假设存在反序列化函数
});
}
// 更多的方法...
}
```
上述代码展示了如何通过注入`RedisTemplate`对象来进行各种Redis命令调用。这里包含了两个主要功能:一个是向Redis中写入带有生存周期的数据;另一个是从Redis读取特定键对应的值。
对于更复杂的应用场景,还可以继续扩展此类的功能,比如支持哈希表、列表等其他数据类型的操作。
阅读全文