redisutil.set
时间: 2023-11-03 13:05:24 浏览: 119
redisutil.set 是一个 Redis 工具类中的方法,用于向 Redis 中设置一个键值对。其中,set 方法有多个重载,可以设置过期时间、设置 NX 或 XX 参数等。
相关问题:
1. Redis 的数据结构有哪些?
2. Redis 的持久化方式有哪些?
3. Redis 的主从复制原理是
相关问题
redisUtil.set的值可以存多久
在Redis中,可以通过`redisUtil.set`方法来设置键值对。如果不设置过期时间,键值对就会一直存在,直到被手动删除或者Redis服务停止。
如果需要设置过期时间,可以使用`redisUtil.setex`方法,例如:
```
redisUtil.setex(key, seconds, value);
```
这个方法将键`key`和值`value`存储到Redis中,并设置过期时间为`seconds`秒。过期时间到达后,Redis会自动删除这个键值对。
另外,还可以使用`redisUtil.psetex`方法来设置毫秒级别的过期时间,例如:
```
redisUtil.psetex(key, milliseconds, value);
```
这个方法将键`key`和值`value`存储到Redis中,并设置过期时间为`milliseconds`毫秒。过期时间到达后,Redis会自动删除这个键值对。
需要注意的是,如果键的过期时间已经设置过,再次调用`set`或`setex`方法时,会覆盖原有的过期时间。因此,在设置过期时间时,需要注意是否已经设置过。
public SessionInfo getSessionInfo(String accessToken) { if (StringUtils.isBlank(accessToken)) { return null; } else { String redisKey = "accessToken:" + accessToken; if (this.redisUtil.hasKey(redisKey)) { SessionInfo sessionInfo = (SessionInfo)this.redisUtil.get(redisKey); sessionInfo.setExpireFreshTime(System.currentTimeMillis()); if (EquipmentTypeEnum.PC.getType().equals(sessionInfo.getEquipmentType())) { sessionInfo.setExpireMinute(this.timeout); this.redisUtil.set(redisKey, sessionInfo, this.timeout); } else { sessionInfo.setExpireMinute(this.appTimeout); this.redisUtil.set(redisKey, sessionInfo, this.appTimeout); } return sessionInfo; } else { return null; } } }中文讲解
这段代码是一个方法 `getSessionInfo`,它接受一个 `accessToken` 参数并返回一个 `SessionInfo` 对象。
首先,它会检查 `accessToken` 是否为空,如果为空,则返回 `null`。
如果 `accessToken` 不为空,则会生成一个 Redis 的键名 `redisKey`,格式为 `"accessToken:" + accessToken`。
接下来,它会检查 Redis 中是否存在该键名(即检查是否存在对应的 `accessToken` 的缓存)。如果存在,将从 Redis 中获取对应的 `SessionInfo` 对象,并更新其刷新时间(`expireFreshTime`)为当前时间戳。
然后,它会根据 `sessionInfo` 对象中的 `equipmentType` 属性判断设备类型。如果是 PC 设备类型(通过 `EquipmentTypeEnum.PC.getType().equals(sessionInfo.getEquipmentType())` 判断),将设置过期时间为 `timeout` 分钟,并将更新后的 `sessionInfo` 对象重新存入 Redis 中。如果是其他设备类型,则设置过期时间为 `appTimeout` 分钟,并将更新后的 `sessionInfo` 对象重新存入 Redis 中。
最后,如果 Redis 中不存在该键名,则返回 `null`。
总体来说,这段代码的作用是从 Redis 中获取指定 `accessToken` 对应的 `SessionInfo` 对象,并更新其缓存时间。如果缓存不存在,则返回 `null`。
阅读全文