RedisツールクラスパッケージRedisUtils
5932 ワード
参考資料:https://blog.it-follower.com/posts/2563248908.html
SpringBootプロジェクトの統合Redisはかなり簡単で、pomに対応依存を加えるだけです.
ymlではspringを配置する.redis.host,spring.redis.portでいいです.
具体的にどのようにカプセル化するか、直接コードをつけます.
これにより、コード内でいつでもどこでも使用できます.
このツールクラスを使用するには、SpringUtilsでApplicationContextの注入を完了する必要があるという小さな前提があります.注入方法はたくさんありますが、ここでは表にしません.
SpringBootプロジェクトの統合Redisはかなり簡単で、pomに対応依存を加えるだけです.
org.springframework.boot
spring-boot-starter-data-redis
ymlではspringを配置する.redis.host,spring.redis.portでいいです.
具体的にどのようにカプセル化するか、直接コードをつけます.
/**
* Redis , RedisTemplate
*
* @author ye17186
* @version 2019/2/22 10:48
*/
public class RedisUtils {
private RedisUtils() {
}
@SuppressWarnings("unchecked")
private static RedisTemplate redisTemplate = SpringUtils
.getBean("redisTemplate", RedisTemplate.class);
/**
*
*
* @param key Redis
* @param timeout
* @return true= ;false=
*/
public static boolean expire(final String key, final long timeout) {
return expire(key, timeout, TimeUnit.SECONDS);
}
/**
*
*
* @param key Redis
* @param timeout
* @param unit
* @return true= ;false=
*/
public static boolean expire(final String key, final long timeout, final TimeUnit unit) {
Boolean ret = redisTemplate.expire(key, timeout, unit);
return ret != null && ret;
}
/**
* key
*
* @param key
* @return true= ;false=
*/
public static boolean del(final String key) {
Boolean ret = redisTemplate.delete(key);
return ret != null && ret;
}
/**
* key
*
* @param keys
* @return
*/
public static long del(final Collection keys) {
Long ret = redisTemplate.delete(keys);
return ret == null ? 0 : ret;
}
/**
*
*
* @param key Redis
* @param value
*/
public static void set(final String key, final Object value) {
redisTemplate.opsForValue().set(key, value, 1, TimeUnit.MINUTES);
}
//
/**
*
*
* @param key
* @param value
* @param timeout ,
*/
public static void set(final String key, final Object value, final long timeout) {
redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
}
/**
*
*
* @param key
* @return
*/
public static Object get(final String key) {
return redisTemplate.opsForValue().get(key);
}
// Hash
/**
* Hash
*
* @param key Redis
* @param hKey Hash
* @param value
*/
public static void hPut(final String key, final String hKey, final Object value) {
redisTemplate.opsForHash().put(key, hKey, value);
}
/**
* Hash
*
* @param key Redis
* @param values Hash
*/
public static void hPutAll(final String key, final Map values) {
redisTemplate.opsForHash().putAll(key, values);
}
/**
* Hash
*
* @param key Redis
* @param hKey Hash
* @return Hash
*/
public static Object hGet(final String key, final String hKey) {
return redisTemplate.opsForHash().get(key, hKey);
}
/**
* Hash
*
* @param key Redis
* @param hKeys Hash
* @return Hash
*/
public static List
これにより、コード内でいつでもどこでも使用できます.
@GetMapping("/test")
public ApiResp test() {
RedisUtils.set("key", "value");
RedisUtils.get("key");
return ApiResp.retOK();
}
このツールクラスを使用するには、SpringUtilsでApplicationContextの注入を完了する必要があるという小さな前提があります.注入方法はたくさんありますが、ここでは表にしません.