C# 如何在redis数据库中配置实例(文件夹)
我正在将c#与StackExchange.Redis一起使用。 我用这样的东西来连接:C# 如何在redis数据库中配置实例(文件夹),c#,redis,stackexchange.redis,C#,Redis,Stackexchange.redis,我正在将c#与StackExchange.Redis一起使用。 我用这样的东西来连接: var client = ConnectionMultiplexer.Connect(_appSettings["Cache:Redis:Configuration"]); _database = client.GetDatabase(int.Parse(_appSettings["Cache:Redis:LockProcessDB"])); 然后我通过以下方式访问set/get命令: _d
var client = ConnectionMultiplexer.Connect(_appSettings["Cache:Redis:Configuration"]);
_database = client.GetDatabase(int.Parse(_appSettings["Cache:Redis:LockProcessDB"]));
然后我通过以下方式访问set/get命令:
_database.StringSet(data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
...
我现在需要将数据中的不同“部分”划分到redis数据库中的不同“文件夹”中。
因此,我希望DB7有一个名为:Documents的子文件夹,而不是仅仅在DB7下设置值,我正在设置的值应该插入到该文件夹下
在Microsoft.Extensions.Caching.Distributed for.net core解决方案的中,他们支持这样注册它:
services.AddDistributedRedisCache(options =>
{
options.Configuration = ConfigUtils.Instance.Get("Redis_Config", "");
options.InstanceName = "Documents:";
});
然后将我的set命令定向到“Documents”子文件夹。
如何使用StackExchange.Redis实现这一点?我似乎不了解Redis DB中分离的一个重要部分。
前缀的选项及其使用方法
当试图设置一个值时,我实际上可以添加一个前缀,如-
string _prefix = "documents:";
_database.StringSet(_prefix + data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
达到了预期的效果
数据以documents:myKey
的形式保存在my redis DB中名为“documents”的文件夹下