gpt4 book ai didi

redis - REDIS 中的递归搜索

转载 作者:行者123 更新时间:2023-12-03 06:42:44 25 4
gpt4 key购买 nike

在 ETCD 中,假设以下是键值对:

公司/谷歌/员工/员工1
员工 ID1

公司/谷歌/员工/员工2
员工 ID2

公司/亚马逊/员工/员工1
员工 ID1

公司/亚马逊/员工/员工2
员工 ID2

当我在“company/amazon/”上进行 Fetch 时,我会获取 amazon 中所有员工的员工 ID(同样适用于“company/google/”),而在“company/”上的 fetch 会获取所有员工 ID。
REDIS 是否支持此功能?如果没有,我们怎么能做同样的事情?

提前致谢。

最佳答案

一种方法是使用散列和 HSCAN模式匹配 key 。

包含所有数据的一个哈希将扫描封装到仅相关键,而不是数据库上的所有键。

HSCAN具有返回键和值的优点。 KEYSSCAN只返回键,然后您需要获取值。

> HSET myData company/google/employees/employee1 employeeID1
(integer) 1
> HSET myData company/google/employees/employee2 employeeID2
(integer) 1
> HSET myData company/amazon/employees/employee1 employeeID1
(integer) 1
> HSET myData company/amazon/employees/employee2 employeeID2
(integer) 1
> HSCAN myData 0 MATCH company/amazon/* COUNT 100
1) "0"
2) 1) "company/amazon/employees/employee1"
2) "employeeID1"
3) "company/amazon/employees/employee2"
4) "employeeID2"
> HSCAN myData 0 MATCH company/google/* COUNT 100
1) "0"
2) 1) "company/google/employees/employee1"
2) "employeeID1"
3) "company/google/employees/employee2"
4) "employeeID2"
> HSCAN myData 0 MATCH company/* COUNT 100
1) "0"
2) 1) "company/google/employees/employee1"
2) "employeeID1"
3) "company/google/employees/employee2"
4) "employeeID2"
5) "company/amazon/employees/employee1"
6) "employeeID1"
7) "company/amazon/employees/employee2"
8) "employeeID2"

关于redis - REDIS 中的递归搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59713865/

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