记录一个redis类型冲突报错:

org.springframework.daoInvalidDataAccessApiUsageException: WRONGTYPE Operation against a key holding the wrong kind of value; nested exception is redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

首先我用redisTemplate.opsForValue()存了一组<k,v>,伪代码如下:

private static final String REDIS_KEY_PRIFFIX = "string:"; 
 public void set(String val) {
        String key = REDIS_KEY_PRIFFIX +val;
        redisTemplate.opsForValue().set(key, val);
    }

//测试方法
@Test
public void setTest1() {
    redisStringService.set("aa");
}

 

然后用redisTemplate.opsForList()存另一组<k,v>,伪代码如下

private static final String REDIS_KEY_PREFIX = "string:";    
public void initArticle() {
        LocalDateTime localDateTime = LocalDateTime.now();
        String localTime = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-mm-dd HH:mm"));
        long id = (new Random().nextInt(8000) + 1);
        List<Article> articles = new ArrayList<>();
        for (int i = 1; i < 6; i++) {
            Article article = new Article(
                    "1000" + i,
                    "myron" + i,
                    localTime,
                    "content" + i,
                    "title" + i, id);
            articles.add(article);
        }
        String redisKey = REDIS_KEY_PRIFIX + "aa";
        redisTemplate.opsForList().leftPushAll(redisKey,articles);
    }

//测试方法
   @Test
    public void test1() {
        redisListService.initArticle();
    }

随后报错:

org.springframework.daoInvalidDataAccessApiUsageException: WRONGTYPE Operation against a key holding the wrong kind of value; nested exception is redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

解决办法:

在redis官网没找到原因,应该是类型出错了,把key删掉就ok了

 

posted on 2020-07-01 22:22  哈皮的玩偶  阅读(621)  评论(0编辑  收藏  举报