StackExchange.Redis.RedisServerException 针对持有错误类型值的密钥的WRONGTYPE操作

Redis 的异常消息:StackExchange.Redis.RedisServerException:“WRONGTYPE Operation against a key holding the wrong kind of value”

最近一个较早的项目新增一些功能,业务中服务端需要在token中自动获取用户相关信息的操作,项目中已经封装了redis帮助类,获取用户信息使用的方法如下:

 接口开发完成后,测试过程中开始为了方便,使用配置过滤token验证,如下:

IsVerifyToken在配置文件中设置为0,所以没有发现获取token异常问题,当部署本地给前端测试时,才发现总是获取不到用户相关信息的问题,经测试报了文章开头的异常,报错异常方法:

在var hashFields = redisConnection.GetDatabase().HashGetAll(key);执行此句的时候报错,经过一番测试查找,原来是存储类型的问题。

以下是检索键值的命令:

  • 如果值是字符串类型 -> GET<key>
  • 如果值是哈希类型 -> HGET 或 HMGET 或 HGETALL<key>
  • 如果值是列表类型 -> lrange<key> <start> <end>
  • 如果值是集合类型 -> smembers<key>
  • 如果值是排序集类型 -> ZRANGEBYSCORE<key> <min> <max>
  • 如果值是流类型 -> xread count <count>streams <key> <ID>

 由于项目与一些三方有合作,此项目没有登录接口,使用三方登录并按照三方规则验证token,(时间有些久,部分业务功能有些记不清楚了)由于本机存储为字符串类型的json串,而这个老项目实际存储的类型为哈希类型,所以使用在本机的token出现了异常,于是本机redis创建哈希类型的数据,在使用新创建的key获取就可以了。

存储方法:

 使用工具查看:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值