Azure Cache for Redis控制台返回nil的原因排查求助
.NET Web API Redis缓存GET返回nil但KEYS可见的问题解决
问题原因
你在Program.cs配置Redis时设置了options.InstanceName = "test";,StackExchangeRedisCache会自动为所有缓存key添加实例名前缀,实际存储的key是test:weatherForecast,而非代码中指定的weatherForecast。这就是KEYS *能看到key,但GET weatherForecast返回nil的核心原因。
解决步骤
- 控制台正确获取值:在Azure Redis控制台执行
GET test:weatherForecast,即可获取到存储的JSON数据。 - 代码调整选项:
- 若不需要实例名前缀,直接删除
options.InstanceName = "test";配置项,后续缓存key将使用代码中指定的原始名称。 - 保留实例名可有效区分不同应用/环境的缓存key,避免命名冲突,可根据业务场景选择是否保留。
- 若不需要实例名前缀,直接删除
额外验证点
- 确认
JsonConvert的序列化、反序列化逻辑正常,保证存储的数据格式符合预期。 - 30秒过期配置正常,key在超时后自动消失属于预期行为。
内容的提问来源于stack exchange,提问作者HeyLameRobin
相关产品推荐
相关产品推荐

