--Redis入坑--RedisPipelineException:Pipeline contained one or more invalid commands;WRONGTYPE ...
異常說(shuō)明
最近在寫代碼的時(shí)候,redis報(bào)了如下錯(cuò)誤:
org.springframework.data.redis.connection.RedisPipelineException: Pipeline contained one or more invalid commands; nested exception is io.lettuce.core.RedisCommandException: WRONGTYPE Operation against a key holding the wrong kind of value
原因分析
之前的一個(gè)需求中,使用的是list作為數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),其存儲(chǔ)方式為redisService.lPush(key,value),之后邏輯的變更,使得需要換成set作為數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),其存儲(chǔ)方式為redisService.sadd(key,value)。發(fā)生錯(cuò)誤的位置就是這里:
在更改數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的同時(shí),key的鍵還是一樣的,因?yàn)橹暗逆I是綁定給list結(jié)構(gòu)的,現(xiàn)在key沒(méi)變,而結(jié)構(gòu)換成了set,所以導(dǎo)致類型錯(cuò)誤的異常。
解決方法
只需要把鍵重新命名為新的并且不重復(fù)于其他鍵即可。
總結(jié)
在使用redis進(jìn)行存儲(chǔ)的時(shí)候,數(shù)據(jù)結(jié)構(gòu)最好不要隨意更改,如果更改了,就需要把鍵重新命名一下,以防鍵的類型與原來(lái)的不匹配,存儲(chǔ)從而導(dǎo)致發(fā)生異常。
總結(jié)
以上是生活随笔為你收集整理的--Redis入坑--RedisPipelineException:Pipeline contained one or more invalid commands;WRONGTYPE ...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python爬虫爬取智联招聘(进阶版)
- 下一篇: Redis 设计与实现 1:数据库 re