Neo*_*Neo 5 c# caching azure redis stackexchange.redis
创建 redis 列表并设置密钥,如以下让我出错
public async Task MyMethod<T>()
{
//if i'm doing following it is working
string listname = "listname";
string listkey = "key";
RedisList<string> demodemo = new RedisList<string>(Settings, listname);
await demodemo.LeftPush(listkey);
//but i want to do it like below it is thoughing exception
RedisList<string> list = new RedisList<string>(Settings, typeof(T).Name.ToString());
string mykey = "myId";
await list.LeftPush(mykey);
Run Code Online (Sandbox Code Playgroud)
收到以下错误:
结果消息:StackExchange.Redis.RedisServerException:针对持有错误类型值的键的 ERR 操作
作为旁注;RedisList<T>不是 SE.Redis 类型,所以我不能直接评论。但是:当您尝试做没有意义的事情时,该错误消息来自 redis-server 本身;例如,如果foo是string,则不能lpop foo或zcard foo。
所以问题就变成了:存储的值是什么?我无法为您回答,但是:服务器可以。如果您熟悉 redis-cli,那么debug object fooorobject encoding foo可能有用。老实说,您可能也可以通过猜测来做同样的事情:
strlen foo - 如果这有效,它是一个字符串hlen foo - 如果这有效,它是一个散列llen foo - 如果这有效,它是一个列表scard foo - 如果这有效,它是一个集合zcard foo - 如果这有效,它是一个排序集请注意,所有这些命令都可以通过 SE.Redis 获得,但是为了调查可疑数据库,redis-cli 通常更容易。
可能发生的情况是您在没有意识到的情况下不小心重用了一个键名。这可能是为您的键名添加前缀的价值的一个很好的广告 - SE.Redis 在与数据库交谈时可以自动为您做的其他事情。
| 归档时间: |
|
| 查看次数: |
6782 次 |
| 最近记录: |