所以我将一个密钥添加到redis数据库(使用StackExchange.Redis),该数据库具有连接字符串,如下所示:
server:6379,ssl=false,abortConnect=false,password=*****,defaultDatabase=1
我看到的行为是将密钥添加到默认数据库0而不是我在连接字符串中指定的,但是看起来字符串中的默认数据库是尝试从中检索密钥的位置。在我用明确的数据库集乱丢我的课之前的任何想法?
修改
从缓存中获取对象:
public object Get(string key, Type t = null)
{
var cacheStore = Connection.GetDatabase();
var cachedItem = cacheStore.StringGet(key);
return !cachedItem.IsNull ? JsonConvert.DeserializeObject(cachedItem, t) : null;
}
要将对象添加到缓存中:
public void Add(string key, object value, TimeSpan? expiry)
{
var cacheStore = Connection.GetDatabase();
var serializedData = JsonConvert.SerializeObject(value);
cacheStore.StringSet(key, serializedData, expiry);
}
如上所述,如果我将数据库ID传递给Connection.GetDatabase(),它可以正常工作,如果我依赖连接字符串中的defaultDatabase参数,则将项目添加到数据库0并尝试从数据库1中检索。