Redis 中的二级索引通过 StackExchange.Redis
Secondary Index in Redis via StackExchange.Redis
使用 Spring data redis @indexed 我可以在 Redis 中设置索引。
像这样定义我的域
@RedisHash("customer")
public class Customer extends Serializble{
@Id
Private String CustomerId;
@Indexed
Private String CustmerName;
…
}
我正在尝试使用 C# StackExchange.Redis 来实现。成功创建哈希 [=13=]
IDatabase db = redis.GetDatabase(Variables.RedisDatabaseIndex);
db.HashSet(Row.customerId, new HashEntry[] {new HashEntry("customerName", Row.customerName) )
问题是我无法创建类似于 spring data redis 中的 Indexed 选项的索引。我试图从 stackexchange.redis 文档中获取,但找不到任何解决方案。任何指针都会有所帮助
本质上,SE.Redis 只是公开了核心的 Redis 命令和原语。如果您知道要发出什么命令:SE.Redis 会帮助您。但是,它 不会 尝试提供更复杂的场景。您通常可以做这些事情 - 无论是手动还是通过像 RediSearch 这样的工具 - 但是:你需要自己弄清楚那部分。当你知道自己要做什么时,SE.Redis会帮你要求服务器去做。直接或通过 NRediSearch 等包装器。
StackExchange.Redis 简单地换行 RESP commands。它不会尝试在此之上提供任何抽象。
Redis 本身没有“二级索引”的概念 - 至少不是您可能习惯于使用传统关系数据库的方式。但是,它提供了许多数据结构,可用于维护有效的二级索引。
我不熟悉 Spring 的 Redis 客户端,但在上面的示例中,您必须手动维护某种形式的客户名称到客户 ID 的映射,例如每个名称使用另一个哈希或一个键。
如果您想提供某种形式的搜索,您可能需要查看 Trigram-based search。
我写了 an article 关于如何维护这些索引(通过事务或批处理作业),您可能也会发现它们有用。话虽如此,它主要侧重于数字索引,而您似乎正在寻找某种形式的搜索。
使用 Spring data redis @indexed 我可以在 Redis 中设置索引。
像这样定义我的域
@RedisHash("customer")
public class Customer extends Serializble{
@Id
Private String CustomerId;
@Indexed
Private String CustmerName;
…
}
我正在尝试使用 C# StackExchange.Redis 来实现。成功创建哈希 [=13=]
IDatabase db = redis.GetDatabase(Variables.RedisDatabaseIndex);
db.HashSet(Row.customerId, new HashEntry[] {new HashEntry("customerName", Row.customerName) )
问题是我无法创建类似于 spring data redis 中的 Indexed 选项的索引。我试图从 stackexchange.redis 文档中获取,但找不到任何解决方案。任何指针都会有所帮助
本质上,SE.Redis 只是公开了核心的 Redis 命令和原语。如果您知道要发出什么命令:SE.Redis 会帮助您。但是,它 不会 尝试提供更复杂的场景。您通常可以做这些事情 - 无论是手动还是通过像 RediSearch 这样的工具 - 但是:你需要自己弄清楚那部分。当你知道自己要做什么时,SE.Redis会帮你要求服务器去做。直接或通过 NRediSearch 等包装器。
StackExchange.Redis 简单地换行 RESP commands。它不会尝试在此之上提供任何抽象。
Redis 本身没有“二级索引”的概念 - 至少不是您可能习惯于使用传统关系数据库的方式。但是,它提供了许多数据结构,可用于维护有效的二级索引。
我不熟悉 Spring 的 Redis 客户端,但在上面的示例中,您必须手动维护某种形式的客户名称到客户 ID 的映射,例如每个名称使用另一个哈希或一个键。
如果您想提供某种形式的搜索,您可能需要查看 Trigram-based search。
我写了 an article 关于如何维护这些索引(通过事务或批处理作业),您可能也会发现它们有用。话虽如此,它主要侧重于数字索引,而您似乎正在寻找某种形式的搜索。