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); }
以上就是Redis存储点赞数据时,Integer类型转换失败如何解决?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号