根據key查詢redis中是否存在key對應的value,根據key獲取值


工具類:

package com.ljxx.service.common;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.data.redis.support.atomic.RedisAtomicLong;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;


@Service
public class RedisService {


    @Autowired
    private RedisTemplate redisTemplate;


    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Value("${system.redisPre}")
    private String redisPre;


    /**
     * string類型
     */

    //刪除key
    public void deleteKey(String key) {
        stringRedisTemplate.delete(redisPre + key);
    }

    //判斷key存在
    public boolean keyIsExists(String key) {
        return stringRedisTemplate.hasKey(redisPre + key);
    }

    //設置key失效時間,以秒為單位
    public void setKeyTimeOut(String key, long second) {
        stringRedisTemplate.expire(redisPre + key, second, TimeUnit.SECONDS);
    }

    //設置值
    public void setValue(String key, String val) {
        stringRedisTemplate.boundValueOps(redisPre + key).set(val);
    }

    //獲取值
    public String getValue(String key) {
        return stringRedisTemplate.boundValueOps(redisPre + key).get();
    }


    /**
     * object類型
     */
    //存入對象
    public void setObject(String key, Object obj) {
        getRedisTemplate().boundValueOps(redisPre + key).set(obj);
    }

    //獲取對象
    public Object getObject(String key) {
        return getRedisTemplate().boundValueOps(redisPre + key).get();
    }

    //刪除對象
    public void delObject(String key) {
        getRedisTemplate().delete(redisPre + key);
    }

    //設置對象過期時間
    public void setObjectTimeOut(String key, long second) {
        getRedisTemplate().expire(redisPre + key, second, TimeUnit.SECONDS);
    }

    //判斷對象是否存在
    public boolean objectIsExists(String key) {
        return getRedisTemplate().hasKey(redisPre + key);
    }


    //獲取RedisTemplate,把key進行string序列化,那么在庫中就顯示的原始的key值,否則就是16進制的值不方便。
    private RedisTemplate getRedisTemplate() {
        //設置key是string類型的序列
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        //設置hashKey是string類型的序列
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }


}

使用工具類:注入

@Autowired
    private RedisService redisUtil;

調用工具類的方法:

if (!redisUtil.objectIsExists(token)) {
            return Result.error("token已經失效!");
}
User user = (User) redisUtil.getObject(token);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM