+ My notes/mistakes/... when using cache (mainly Redis) from time to time
+
+
My default strategy is:
+
+
Write to database first then to cache second
+
+ Read from cache first, if not found then read from database second, then
+ re-write to cache
+
+
+
It's good for general cases, for example with CRUD action.
+
+ The bad things happen when cache and database are not consistent. For
+ example what happen if writing database OK then writing cache failed? Now
+ database has new value, but cache has old value Then when we read again,
+ we read cache first with old value, and that is disaster.
+
diff --git a/posts/2023-07-30-cache-shenanigan.md b/posts/2023-07-30-cache-shenanigan.md
new file mode 100644
index 0000000..3d85b1c
--- /dev/null
+++ b/posts/2023-07-30-cache-shenanigan.md
@@ -0,0 +1,19 @@
+# Cache shenanigan
+
+My notes/mistakes/... when using cache (mainly Redis) from time to time
+
+My default strategy is:
+
+- Write to database first then to cache second
+- Read from cache first, if not found then read from database second, then re-write to cache
+
+It's good for general cases, for example with CRUD action.
+
+The bad things happen when cache and database are not consistent.
+For example what happen if writing database OK then writing cache failed?
+Now database has new value, but cache has old value
+Then when we read again, we read cache first with old value, and that is disaster.
+
+## Thanks
+
+- [Cache Consistency with Database](https://danielw.cn/cache-consistency-with-database)
diff --git a/posts/index.md b/posts/index.md
index 5e94ecf..c6aab46 100644
--- a/posts/index.md
+++ b/posts/index.md
@@ -27,3 +27,4 @@ This is where I dump my thoughts.
- [Useful tools](2023-06-25-useful-tools.html)
- [Pastebin](2023-07-01-pastebin.html)
- [F(an) android](2023-07-02-fandroid.html)
+- [Cache shenanigan](2023-07-30-cache-shenanigan.html)