Redis使用案例

该代码段展示了如何利用@Autowired的StringRedisTemplate从Redis中获取上海团队成员。首先尝试从缓存中获取成员,如果缓存为空,则通过iSysDeptReadService查询子部门并转化为Set,将结果存入Redis并设置24小时过期时间。异常时返回null。
 //https://blog.csdn.net/m0_62866192/article/details/121438008 
    @Autowired
    private StringRedisTemplate redisTemplate;

    public Set<String> getTeamAtShanghai(String deptId){
        try {
            Set<String> members = redisTemplate.opsForSet().members(MarketManagerConstant.REDIS_KEY_SHANGHAI + deptId);
            if (CollectionUtil.isNotEmpty(members)) {
                return members;
            } else {
                List<SysDeptBO> noDeleteDeptSubByDeptId = iSysDeptReadService.getNoDeleteDeptSubByDeptId(deptId, true);
                if (CollectionUtil.isEmpty(noDeleteDeptSubByDeptId)) {
                    return null;
                }
                List<String> collect = noDeleteDeptSubByDeptId.stream().map(SysDeptBO::getDeptId).collect(Collectors.toList());
                Set<String> deptSet = new HashSet<>(collect);
                String[] stringDept = deptSet.toArray(new String[deptSet.size()]);
                redisTemplate.opsForSet().add(MarketManagerConstant.REDIS_KEY_SHANGHAI + deptId, stringDept);
                redisTemplate.expire(MarketManagerConstant.REDIS_KEY_SHANGHAI + deptId, 24, TimeUnit.HOURS);
                return deptSet;
            }
        }catch (Exception e){
            log.info("获取上海团队信息异常"+ ExceptionUtils.getStackTrace(e));
        }
        return null;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值