美文网首页
redis使用

redis使用

作者: 西谷haul | 来源:发表于2021-08-03 17:42 被阅读0次

    记录使用redis中遇到得问题:
    1、程序将调用流程得functionId保存在redis中,redis中可能会保存到错误得数据,当错误数据已经存在时,程序调用到流程,会先通过functionId去redis中查询是否已存在,若不存在,才会去数据库中查询数据,若存在,则直接调用了这个错误得流程。
    解决方法:

    一、首先引入依赖

    <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
    </dependency>
    
    //注册使用redisTemplate
    @Autowired
        private RedisTemplate<String,Object> redisTemplate;
    

    二、针对String和hash类型的数据操作

    1、string

    //插入数据
    ValueOperations<String,  Object> hashTokenOp = redisTemplate.opsForValue();
            hashTokenOp.set(tokenKey,tokenSession,10, TimeUnit.MINUTES);
    
    //获取数据
    ValueOperations<String, Object>  hashTokenOp = redisTemplate.opsForValue();
            return  (TokenSession) hashTokenOp.get(tokenKey);
    
    //删除数据
    public void deleteTokenInfo(String tokenKey) {
            redisTemplate.delete(tokenKey);     
        }
    
    set方法源码

    如上查看set方法可以发现有很多的方法,上面示例使用的是key,value,过期时间,时间单位的方法。在获取时,只需要拿键值来执行get方法即可。删除数据则更简单,只需要使用redisTemplate调用delete,传入key即可。

    1、hash

    //插入数据
    @Override
        public void putUserInfo(String userName, String token) {
            HashOperations<String, String, String> hashUserOp =redisTemplate.opsForHash();// redisTemplate.opsForHash();
            hashUserOp.put(USER_KEY,userName,token);
        }
    //查询数据
    public String getUserInfo(String userName) {
            HashOperations<String, String, String> hashUserOp =redisTemplate.opsForHash();
            return hashUserOp.get(USER_KEY, userName); 
        }
    
    hash操作方法源码

    查看源码可知,查询操作和删除操作只需要传入hash的key,以及hash内部的key即可。插入操作传只是多传一个参数作为value。

    相关文章

      网友评论

          本文标题:redis使用

          本文链接:https://www.haomeiwen.com/subject/irgsvltx.html