gpt4 book ai didi

redis - servicestack redis,使用SetEntry时,会在redis db中自动生成key为 "ids:+objectName"的set,如何禁用?

转载 作者:IT王子 更新时间:2023-10-29 06:04:41 31 4
gpt4 key购买 nike

使用SetEntry时,会在redis db中自动生成key为“ids:+ objectName”的set。

例如: typedClient.SetEntry("famyly:username:jhon",new Family {FatherName="Jhon",...});

将在 redis 数据库中自动创建一个键名为“ids:Family”的集合和一个成员如“2343443”,每次我使用 SetEntry 更新或修改相同的键时,“ids:Family”的集合将增加一个新的自动生成的成员。如果我经常更新 key ,这个集合将变得非常大。

如何禁用自动生成集?这个集合在当前情况下似乎没有用。

谢谢

最佳答案

我遇到了同样的问题 - 我发现我们的数据库包含几十个这样的“ids:XXX”集合,每个集合包含数千万个项目,这些项目消耗了大量内存。

解决方案是切换到非类型化客户端。您仍然可以在客户端上使用类型化的方法,因此您实际上并没有放弃任何类型安全或自动序列化。有几种创建客户的方法;我们倾向于在 RedisClientsManager 上使用 get-in-get-out Exec 快捷方式。您应该能够根据自己的方式进行调整。

类型化客户端 - 创建“ids”集:

// set:
redis.ExecAs<T>(c => c.SetEntry(key, value));

// get:
T value = redis.ExecAs<T>(c => c.GetValue(key));

未类型化的客户端 - 没有创建“ids”集:

// set:
redis.Exec(c => c.Set(key, value));

// get:
using (var cli = _redis.GetClient())
{
T value = cli.Get<T>(key);
}

关于redis - servicestack redis,使用SetEntry时,会在redis db中自动生成key为 "ids:+objectName"的set,如何禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20063297/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com