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获取就可以了。

存储方法:

 使用工具查看:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值