JavaUtilS | Redis工具类 - RedisUtil

邵璞
2023-12-01
package com.springboot.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
 * Redis工具类
 *
 * @author 花学长
 */
@Component
public class RedisUtil {

    @Autowired
    private StringRedisTemplate redisTemplate;

    /**
     * 天:DAYS
     * 小时:HOURS
     * 分:MINUTES
     * 秒:SECONDS
     * 毫秒:MILLISECONDS
     */

    /**
     * 实现命令:TTL key,以秒为单位,返回给定 key的剩余生存时间(TTL, time to live)。
     *
     * @param key
     * @return
     */
    public long ttl(String key) {
        return redisTemplate.getExpire(key);
    }

    /**
     * 实现命令:expire 设置过期时间,单位:分
     *
     * @param key
     * @param timeout
     * @return
     */
    public void expire(String key, long timeout) {
        redisTemplate.expire(key, timeout, TimeUnit.MINUTES);
    }

    /**
     * 实现命令:INCR key,增加key一次
     *
     * @param key
     * @return
     */
    public long incr(String key, long delta) {
        return redisTemplate.opsForValue().increment(key, delta);
    }

    /**
     * 实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
     */
    public Set<String> keys(String pattern) {
        return redisTemplate.keys(pattern);
    }

    /**
     * 实现命令:ins key, key设置内容
     *
     * @param key
     * @param value
     */
    public void ins(String key, String value) {
        redisTemplate.opsForValue().set(key,value);
    }

    /**
     * 实现命令:inst key, key设置时间:分和内容
     *
     * @param key
     * @param value
     * @param time
     * @return
     */
    public void inst(String key, String value ,long time) {
        redisTemplate.opsForValue().set(key,value,time,TimeUnit.MINUTES);
    }

    /**
     * 实现命令:DEL key,删除一个key
     *
     * @param key
     */
    public Boolean del(String key) {
        return redisTemplate.delete(key);
    }

    /**
     * 实现命令:UPD key, 更新内容
     *
     * @param key
     * @param value
     * @return
     */
    public String upd(String key, String value) {
        return redisTemplate.opsForValue().getAndSet(key, value);
    }

    /**
     * 实现命令:GET key,返回 key所关联的字符串值。
     *
     * @param key
     */
    public String get(String key) {
        return redisTemplate.opsForValue().get(key);
    }

}

 

 类似资料: