basic improvement #1
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request updates documentation and example code to clarify and improve the explanation of cache stampede protection, cache write propagation, and resource management in the Cachex library. The changes focus on both the English and Chinese README files, code examples, and benchmarking setup. The most important updates are grouped below:
Documentation and Conceptual Improvements:
README.mdandREADME_ZH.mdto describe the new "Singleflight + DoubleCheck" mechanism, detailing how concurrent requests are deduplicated and edge cases are eliminated. [1] [2] [3] [4] [5] [6]Resource Management in Examples:
defer ...Close()statements to all cache and client initializations in code examples, ensuring proper resource cleanup in both English and Chinese documentation. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]Multi-Level Cache Write Propagation:
Set/Del) automatically propagate through cache layers when aClientis used as an upstream, supporting both write-through and cache-aside patterns. [1] [2]Benchmarking Improvements:
benchmark_test.goto clean up the client resource after each benchmark scenario by callingclient.Close()in a cleanup function.Configuration Updates:
.vscode/settings.jsonto use the correct package path for coverage analysis.