gpt4 book ai didi

php - 如何使用 laravel 或更全局地缓存动态数据动态缓存的逻辑必须是什么

转载 作者:可可西里 更新时间:2023-11-01 11:25:00 24 4
gpt4 key购买 nike

我有一个 app,它有 users 并且这些 users 几乎在每个部分都相互关联。例如,A 用户是 B 的 friend 。 AB 可以互相屏蔽或被屏蔽。 AB 可以互相发送媒体等,A 可以将您的个人资料照片 隐私设置为隐藏。他们根据他们的隐私状态友谊状态阻止状态媒体关系查看彼此的信息(头像、共享媒体等)。根据他们的关系,relationship data 可能总是随着任何其他人的互动而改变。所以看起来数据是动态的,必须保持动态并且不能缓存(在我看来)。

我正在使用 laravel elequent modelDB 收集 data 我有复杂的 使用用户信息 friend 的友谊信息等获取用户数据的查询。几乎每个查询,我一击收集数据。因此,当任何 friendfriendship datauser 更改时。这些one hit collected data会发生变化,来自单个或多个data点。因此,当 data 更新时,我尝试从 cache driver(redis. .) 它不会是更新后的真实数据

我想用图片展示示例并扩展我的问题。

enter image description here

在示例中,我 (UserApp) 有一个 friend 列表,其中包含我 friend 的信息不同的 View 。当任何 friend 与我互动时(阻止我向我发送媒体向所有人隐藏他们的个人资料照片..)或者当我互动时与他们一起(阻止他们从友谊中删除发送媒体等。)数据和 View 在不刷新的情况下动态变化。但是这个页面是可刷新的,我不想在每次刷新时都运行query。在我的 app 中有相同类型的 pages 如果 app 有很多 users 这些 requests 我认为会更贵。从 query 负担中拯救我的 app 的正确方法必须是什么。如果你告诉我路径.. 我可以前进。提前致谢..

友情查询数据示例

[
{
"id": 44,
"name": "Name1",
"surname": "Surname2",
"country": null,
"town": null,
"email": null,
"phone": "5559933939",
"photo": "/App/Users/Profile/ProfilePictures/1/User_1~Time_1510076458061.jpg",
"profession": null,
"dob": "2011-10-29",
"gender": 1,
"statusTitle": "my status title",
"rank": 1,
"isPremium": 0,
"isAllowedNotifications": 1,
"isAllowedSmsNotifications": 0,
"profilePhotoPrivacyStatus": "2",
"statusTitlePrivacyStatus": "1",
"playerID": null,
"userID": 29,
"friendID": 1,
"friendshipRequester": null,
"friendshipStatus": 3,
"isBlocked": 0,
"isAllowedToTakeReturnMedia": 0,
"isSilenced": 0,
"isMediaActiveAndChangable": 1,
"isSeen": 0,
"isCalled": 0,
"myStatusForFriend": 1,
"isBlockedByFriend": 0,
"fromMeVideoCount": 1,
"toMeVideoCount": 0,
},
{
"id": 53,
"name": "Name2",
"surname": "Surname2",
"country": null,
"town": null,
"email": null,
"phone": "5559933123",
"photo": "/App/Users/Profile/ProfilePictures/2/User_2~Time_1511690217936.jpg",
"profession": null,
"dob": "1992-10-27",
"gender": 2,
"statusTitle": "Hey! lets suprise me..",
"rank": 1,
"isPremium": 0,
"isAllowedNotifications": 1,
"isAllowedSmsNotifications": 0,
"profilePhotoPrivacyStatus": null,
"statusTitlePrivacyStatus": null,
"playerID": "asda9d-12asda-4bd6-a882-sgdfadasd",
"userID": 29,
"friendID": 2,
"friendshipRequester": 2,
"friendshipStatus": 3,
"isBlocked": 0,
"isAllowedToTakeReturnMedia": 1,
"isSilenced": 0,
"isMediaActiveAndChangable": 1,
"isSeen": 0,
"isCalled": 0,
"myStatusForFriend": 3,
"isBlockedByFriend": 0,
"fromMeVideoCount": 21,
"toMeVideoCount": 0,

最佳答案

我以前做过类似的事情。我的解决方案是在写入更新时删除缓存。例如。用户 A 发送数据 -> 删除用户 A 的缓存信息 -> 写入数据。用户 B 读取用户 A 数据 -> 缓存再次从数据库中填充。

关于php - 如何使用 laravel 或更全局地缓存动态数据动态缓存的逻辑必须是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517537/

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