登录
首页 >  文章 >  java教程

Redis存储点赞数据时,Integer类型转换失败如何解决?

时间:2024-12-29 17:00:50 299浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习文章相关编程知识。下面本篇文章就来带大家聊聊《Redis存储点赞数据时,Integer类型转换失败如何解决?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

Redis存储点赞数据时,Integer类型转换失败如何解决?

redis存储数据时遇到参数类型转换的问题?

问题描述

存入的是点赞的数据,包括点赞用户id、被点赞文章id、被点赞回答id。后端传入的数据已经是字符类型,但后端报错java.lang.classcastexception: java.lang.integer cannot be cast to java.lang.string。

问题分析

从错误信息中可以看出,问题出在值为stringredisserializer序列化的hash值上。当试图将整型值(constant.redis_like_code)放入使用stringredisserializer序列化的hash中时,就发生了类型转换错误。

解决方法

要解决此问题,可以将constant.redis_like_code的值更改为string类型,以便与stringredisserializer兼容。或者,也可以将hash值序列化器更改为支持整型的序列化器,例如jackson2jsonredisserializer。

修改后的代码

@Override
public void saveLiked2Redis(String likeUserID, String likePostID, String likeAnswerID) {
    String key = RedisKeyUtils.getLikedKey(likeUserID, likePostID, likeAnswerID);
    // 将REDIS_LIKE_CODE改为String类型
    String value = Constant.REDIS_LIKE_CODE.toString();
    redisTemplate.opsForHash().put(RedisKeyUtils.MAP_KEY_USER_LIKED, key, value);
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>