问题描述:
生产环境redis 查询出错,排查原因才发现,在做login记录缓存到redis,发现有两处地方,set key 时同名了,导致在get key 获取 导致出错!
如下,你在“GET”只是对“SET” 为String 类型的key获取,而“Lists”类型 用“GET”获取,就会出现 WRONGTYPE Operation against a key holding the wrong kind of value 这种报错方式
问题定位:
由于你 set 了一个Lists类型的 key ,而你在获取 时却用了非 Lists 的操作方法获取。
db.Get().Do("SET", userId+"login",1)
db.Get().Do("LPUSH", userId+"login",1)
不同数据类型对应不同的获取 value 方式,SET key ==》GET key ; LPUSH ==》LINDEX 等;