redis使用

2021-08-03  本文已影响0人  西谷haul

记录使用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。

上一篇下一篇

猜你喜欢

热点阅读