微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据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);

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐