System design - A Key-value Store
今天要來筆記的是Key-value Store,是一種非關聯式資料庫,也就是一般用在redis, Amazon DynamoDB, 跟 Memcached裡,儲存資料的方法,Key是unique的、為了效能要越短越好;Value則可以是字串、List、Object、或任意資料結構。而這篇會講到如何設計一個Key-value store去達成get(key), put(key, value)、以及他們可能會遇到的問題。
I'm a Fullstack Developer passionate about System Design, DevOps, and AI. I enjoy building side projects and sharing insights on algorithms and GenAI through my blog.
今天要來筆記的是Key-value Store,是一種非關聯式資料庫,也就是一般用在redis, Amazon DynamoDB, 跟 Memcached裡,儲存資料的方法,Key是unique的、為了效能要越短越好;Value則可以是字串、List、Object、或任意資料結構。而這篇會講到如何設計一個Key-value store去達成get(key), put(key, value)、以及他們可能會遇到的問題。
import { YouTube } from 'astro-embed'; Set and Map 平常就有在用,map存的是Key-value pair、Set存的是unique value。而且操作上來說平均都是O(1)時間複雜度。這篇就來看看他們適合解哪些題型吧。
ByteByteGo這篇介紹的是一致性雜湊,一般來說會用到雜湊,目的是為了把流量透過固定的演算法,分散到某台機器上面,那什麼是一致性雜湊,不好的雜湊演算法又會有什麼問題呢?這篇筆記來說一下ByteByteGo怎麼介紹的。
這篇要介紹的是Rate Limiter,是ByteByteGo System design裡面第一個design環節。現在很多後端主流框架都有內建或有對應套件,但對應的演算法卻被封裝起來,知其然不知其所以然。 今天這篇靠AI生成點簡單的示意圖,讓一張圖道盡千言萬語。