feat(storage): implement Redis distributed lock and cache invalidation broadcasting

- Add Redis distributed lock in Execute of MigrationHandler to prevent concurrent storage migrations.
- Define storage:config_invalidation Redis pub/sub channel to broadcast cache invalidation events.
- Implement background pub/sub listener on all nodes to evict config memory cache concurrently.
- Add integration tests for distributed locking and invalidation propagation using miniredis.
This commit is contained in:
ryan
2026-06-13 15:21:32 +08:00
parent acd430836f
commit 26a1e71a27
6 changed files with 187 additions and 5 deletions
@@ -248,6 +248,7 @@ func UpdateSystemConfig(c *gin.Context) {
if key == model.ConfigKeyStorageConfig {
storage.ResetCache()
storage.PublishCacheInvalidation(c.Request.Context())
}
c.JSON(http.StatusOK, util.OKNil())