RedisTemplate 中String类型的使用

@Service
public class RedisServiceImpl implements RedisService {

    @Autowired(required = false)
    private RedisTemplate<String, String> redisTemplate;

    //保存数据
    @Override
    public void set(String key, String value) {
        redisTemplate.boundValueOps(key).set(value);
    }

    //获取数据
    @Override
    public String get(String key) {
        return redisTemplate.boundValueOps(key).get();
    }

    //删除数据
    @Override
    public boolean delete(String key) {
        return redisTemplate.delete(key);
    }

    //设置有效时间
    @Override
    public boolean expire(String key, long second) {
        return redisTemplate.expire(key,second, TimeUnit.SECONDS);
    }
}
@Service
public class UserServiceImpl implements UserService {
    @Autowired(required = false)
    private UserMapper userMapper;

    @Autowired
    private RedisService redisService;

    ObjectMapper mapper = new ObjectMapper();

    //用户登录
    @Override
    public User login(User user) {
        User user2 = null;//用来保存查询的jieguo
        String userJson = null;//保存从redis中查询的结果
        try {
            //查询redis数据库
            userJson = redisService.get("login_"+user.getName());
            System.out.println("userJson:" + userJson);
            if (userJson != null) {
                //将json格式的字符串转换成user对象
                user2 =mapper.readValue(userJson,User.class);
            } else {
                user2 = userMapper.login(user);
                //将对象转换成json格式
                userJson = mapper.writeValueAsString(user2);
                //将查询结果保存到redis中
                redisService.set("login_"+user.getName(), userJson);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        return user2;

    }

    //查询所有用户
    @Override
    public List<User> getAll() {
        List<User> list = null;//保存查询的结果
        String listJson = null;//保存redis的查询结果

        try {
            //从redis中查询数据
            listJson = redisService.get("getAll");
            System.out.println("listJson:" + listJson);
            if (listJson != null) {
                //从redis中查询到了数据
                //将json格式的字符串转换成list集合
                JavaType type = mapper.getTypeFactory().constructParametricType(List.class, User.class);
                list = mapper.readValue(listJson, type);

            } else {
                //从redis中没有查询到,应该从mysql中查询
                list = userMapper.getAll();
                //将集合转换成json格式
                listJson = mapper.writeValueAsString(list);
                //将查询结果保存到redis中
                redisService.set("getAll", listJson);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        return list;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值