feat:redis utils

This commit is contained in:
xiang
2025-08-24 16:54:34 +08:00
parent 27cde384a0
commit eb39eeaf3b
3 changed files with 145 additions and 1 deletions

View File

@@ -8,7 +8,7 @@
<artifactId>xservice-basic</artifactId> <artifactId>xservice-basic</artifactId>
<version>1.1</version> <version>1.1</version>
</parent> </parent>
<version>1.1</version> <version>2.0</version>
<artifactId>xservice-cache-starter</artifactId> <artifactId>xservice-cache-starter</artifactId>

View File

@@ -1,4 +1,81 @@
package com.xiang.xservice.cache.service; package com.xiang.xservice.cache.service;
import java.util.concurrent.TimeUnit;
public interface IRedisService { public interface IRedisService {
/**
* SET String 数据类型key
* @param key key
* @param value value
*/
void set(String key, String value);
/**
* SET String 数据类型key
* @param key key
* @param value value
* @param timeout 过期时间
* @param unit 时间单位
*/
void set(String key, String value, long timeout, TimeUnit unit);
/**
* SET String 数据类型key
* @param group 项目名称
* @param key key
* @param value value
*/
void set(String group, String key, Object value);
/**
* SET String 数据类型key
* @param group 项目名称
* @param key key
* @param value value
* @param timeout 过期时间
* @param unit 时间单位
*/
void set(String group, String key, String value, long timeout, TimeUnit unit);
/**
* GET String数据类型
* @param key key
* @return value String数据类型
*/
Object get(String key);
/**
* GET String数据类型
* @param group 项目名称
* @param key key
* @return value String数据类型
*/
Object get(String group, String key);
/**
* delete String数据类型
* @param group 项目名称
* @param key key
* @return 是否成功
*/
Boolean delKey(String group, String key);
/**
* 判断redis是否存在key
* @param group 项目名称
* @param key key
* @return 是否存在
*/
Boolean hasKey(String group, String key);
/**
* 设置过期时间
* @param group 项目名称
* @param key key
* @param timeout 过期时间
* @param unit 时间单位
* @return 是否成功
*/
Boolean expire(String group, String key, long timeout, TimeUnit unit);
} }

View File

@@ -0,0 +1,67 @@
package com.xiang.xservice.cache.service;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
@Service
@RequiredArgsConstructor
public class RedisServiceImpl implements IRedisService {
private final RedisTemplate<String, Object> redisTemplate;
@Value("${spring.application.name}")
private String group;
@Override
public void set(String key, String value) {
redisTemplate.opsForValue().set(buildKey(group, key), value);
}
@Override
public void set(String key, String value, long timeout, TimeUnit unit) {
redisTemplate.opsForValue().set(buildKey(group, key), value, timeout, unit);
}
@Override
public void set(String group, String key, Object value) {
redisTemplate.opsForValue().set(buildKey(group, key), value);
}
@Override
public void set(String group, String key, String value, long timeout, TimeUnit unit) {
redisTemplate.opsForValue().set(buildKey(group, key), value, timeout, unit);
}
@Override
public Object get(String key) {
return redisTemplate.opsForValue().get(buildKey(group, key));
}
@Override
public Object get(String group, String key) {
return redisTemplate.opsForValue().get(buildKey(group, key));
}
@Override
public Boolean delKey(String group, String key) {
return redisTemplate.delete(buildKey(group, key));
}
@Override
public Boolean hasKey(String group, String key) {
return redisTemplate.hasKey(buildKey(group, key));
}
@Override
public Boolean expire(String group, String key, long timeout, TimeUnit unit) {
return redisTemplate.expire(buildKey(group, key), timeout, unit);
}
private String buildKey(String group, String key) {
return String.format("%s:%s", group, key);
}
}