logo头像
Snippet 博客主题

【Java解决报错】发生异常WRONGTYPE Operation against a key holding the wrong kind of value

报错内容

发生异常WRONGTYPE Operation against a key holding the wrong kind of value


解决方法

原因:redis 存储的数据类型与所用方法要求的类型不一致

  1. 首先CMD,连接redis服务,进入到指定数据库,查看所存储的数据类型。

    可以看到FOLLOWEE 和 FOLLOWER 类型为zset,LKE类型为set。

  2. 查看到数据类型之后,在调用Jedis的地方检查下,所用的命令是不是与类型匹配。

    可以看到这里的scard是错误使用在zset类型上,应改为zcard。
    正确如下:

    1
    2
    3
    4
    public long getFolloweeCount(int userId, int entityType){
    String followeeKey = RedisKeyUtil.getFolloweeKey(userId,entityType);
    return jedisAdapter.zcard(followeeKey);
    }