如何在redis数据库中配置一个实例(文件夹)
How to config an instance (folder) inside redis database
我在 StackExchange.Redis 中使用 c#。
我用这样的东西来连接:
var client = ConnectionMultiplexer.Connect(_appSettings["Cache:Redis:Configuration"]);
_database = client.GetDatabase(int.Parse(_appSettings["Cache:Redis:LockProcessDB"]));
然后我通过以下方式访问设置/获取命令:
_database.StringSet(data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
...
我现在需要将我的数据中不同的"sections"分到redis数据库中的不同的"folders"中。
因此,我希望 DB 7 有一个名为 Documents 的子文件夹,而不仅仅是在 DB 7 下设置值,我设置的值应该插入该文件夹下。
在 Microsoft.Extensions.Caching.Distributed
for .net core 解决方案中,他们支持像这样注册它:
services.AddDistributedRedisCache(options =>
{
options.Configuration = ConfigUtils.Instance.Get("Redis_Config", "");
options.InstanceName = "Documents:";
});
然后将我的设置命令定向到 "Documents" 子文件夹。
我如何使用 StackExchange.Redis 实现该目标?
看来我没有理解Redis DB 中有关分离的重要部分。
前缀的选项和使用方式。
当尝试设置一个值时,我实际上可以添加一个前缀,比如 -
string _prefix = "documents:";
_database.StringSet(_prefix + data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
达到了预期的效果。
数据在我的 redis 数据库中保存为 documents:myKey
,位于名为 "documents"
的文件夹下
我在 StackExchange.Redis 中使用 c#。 我用这样的东西来连接:
var client = ConnectionMultiplexer.Connect(_appSettings["Cache:Redis:Configuration"]);
_database = client.GetDatabase(int.Parse(_appSettings["Cache:Redis:LockProcessDB"]));
然后我通过以下方式访问设置/获取命令:
_database.StringSet(data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
...
我现在需要将我的数据中不同的"sections"分到redis数据库中的不同的"folders"中。 因此,我希望 DB 7 有一个名为 Documents 的子文件夹,而不仅仅是在 DB 7 下设置值,我设置的值应该插入该文件夹下。
在 Microsoft.Extensions.Caching.Distributed
for .net core 解决方案中,他们支持像这样注册它:
services.AddDistributedRedisCache(options =>
{
options.Configuration = ConfigUtils.Instance.Get("Redis_Config", "");
options.InstanceName = "Documents:";
});
然后将我的设置命令定向到 "Documents" 子文件夹。 我如何使用 StackExchange.Redis 实现该目标?
看来我没有理解Redis DB 中有关分离的重要部分。 前缀的选项和使用方式。
当尝试设置一个值时,我实际上可以添加一个前缀,比如 -
string _prefix = "documents:";
_database.StringSet(_prefix + data.Key, data.Value, TimeSpan.FromSeconds(_ttl), When.NotExists, CommandFlags.None);
达到了预期的效果。
数据在我的 redis 数据库中保存为 documents:myKey
,位于名为 "documents"