大家晚上好,
我有一个项目的树结构,比如:
[
{
"categoryId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"categoryName": "Parent Category",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "cd6df4dc-a117-45c6-9a41-8a4293556042",
"categoryName": "Sub Category 1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "1d96fd93-dbfa-45cb-8a22-e05f47eca1ff",
"categoryName": "Sub Category 1_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
}
]
},
{
"categoryId": "4422b64e-b6e3-4d42-8cee-50c5b57e5f3d",
"categoryName": "Sub Category 2",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "bae56c0e-ad41-4c95-97ed-bece419794b5",
"categoryName": "Sub Category 2_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
},
{
"categoryId": "3b02a7d8-3776-46eb-9872-b10c01f43962",
"categoryName": "Sub Category 2_2",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "d123c7c7-535e-445b-87a4-a53f675e1aa6",
"categoryName": "Sub Category 2_2_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
}
]
}
]
},
{
"categoryId": "86ec623d-47fe-43cc-bdb5-dd834d4bd0a2",
"categoryName": "Sub Category 3",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "a82dc6ef-72f8-46d8-ac1e-738b7145b1ce",
"categoryName": "Sub Category 3_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "592fbff7-33ea-41ce-b082-3862fe92ef49",
"categoryName": "Sub Category 3_1_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
}
]
},
{
"categoryId": "6c9e263f-ef3f-4eb3-8d5b-c07bba4459a7",
"categoryName": "Sub Category 3_2",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45",
"children": [
{
"categoryId": "ee68f439-b863-43a4-8df4-c347b575218a",
"categoryName": "Sub Category 3_2_1",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
}
]
}
]
},
{
"categoryId": "7b18a6c7-a4c9-41cc-aadc-e0abde15662d",
"categoryName": "Sub parent",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
},
{
"categoryId": "a527966a-0f1d-41f1-a8e8-bd0552687f03",
"categoryName": "Sub parent",
"categoryParentId": "44eec2a3-7ca5-4e27-ab0f-3294a4fdad45"
}
]
}
]
此树存储在redis中的一个键下。
鉴于id为(ee68f439-b863-43a4-8df4-c347b575218a)的类别已在sql数据库(例如mysql)中更新,那么如何告诉redis更新此元素,而不是刷新缓存并重新设置它?
从数据库中删除项时的相同情况。
最佳答案
从redis文档中获取命令SET。
设置键以保存字符串值。如果键已包含一个值,则无论其类型如何,都将覆盖该值。
对于删除键,可以使用DEL。
删除指定的键。如果键不存在,则忽略它。
除此之外,如果你想更新json中的条目,你需要从redis中GET当前的json,解析它,更新它,然后SET它回到redis存储中。
关于php - 处理redis中的层次结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51967958/