我知道redis不使用“记录”和“字段”,但我发现这是描述这一点的最佳方式。基本上,我有以下schema:
"SESSION_ID": { "user_id": String, }
所有我想做的是得到所有会话,有一个特定的user_id,我还没有真正能够找到任何关于这个。(注意,在这种情况下,我们不知道session_id,而只知道user_id)我试过使用smembers等,但我是一个初学者与redis,所以我真的没有太多。
smembers
qhhrdooz1#
Redis的二级索引是RediSearch。它可以索引哈希和JSON对象,并允许您对键执行搜索查询。您没有提供给予太多的信息,但我假设您有一些具有user_id属性的会话对象。下面是一个使用哈希的例子:
user_id
HSET session:123 user_id 42 more_data value … FT.CREATE idx ON HASH PERFIX 1 session: SCHEMA user_id NUMERIC … FT.SEARCH idx "@user_id:[42 42]"
这些命令将为会话123创建一个散列,然后为索引会话创建一个名为idx的索引,具有一个名为user_id的数字属性,最后在该索引上执行搜索以检索user_id值在[42 42]范围内的所有散列(因此它与42完全匹配)。您可以使用许多其他字段类型,并且在大多数redis客户端(包括Python、nodeJS、PHP等)中支持搜索(和JSON)命令集
1条答案
按热度按时间qhhrdooz1#
Redis的二级索引是RediSearch。它可以索引哈希和JSON对象,并允许您对键执行搜索查询。
您没有提供给予太多的信息,但我假设您有一些具有
user_id
属性的会话对象。下面是一个使用哈希的例子:这些命令将为会话123创建一个散列,然后为索引会话创建一个名为idx的索引,具有一个名为user_id的数字属性,最后在该索引上执行搜索以检索user_id值在[42 42]范围内的所有散列(因此它与42完全匹配)。
您可以使用许多其他字段类型,并且在大多数redis客户端(包括Python、nodeJS、PHP等)中支持搜索(和JSON)命令集