# Algorithm overview
# Essential Algos
# Validation
# Load balancing
# Rate limiting
- fixed window
- sliding window
- token bucket
- concurrency
# Retry
# Generate Ids
# Pagination
# Locking
# Data structure
- Arrays
- Linked list
- Stack
- Queue
- Hash table
- Tree
- Graph
# Unordered data structures
useful for storing and retrieving information that doesn't follow a specific order. For speed, they utilize key-value pairs or relationships between elements.
# Hierarchical data structures
Hierarchical data structures represent data in a tree-like shape.
They are great for organizing and managing data with ordered parent-child relationships to quickly search, access, and insert elements quickly.
# Linear data structures
Linear data structures are used to arrange items sequentially and in a specific order. They can be traversed in a linear fashion, which makes them ideal for organizing and manipulating data when access, insertion, or removal must take place in a specific sequence or place.
# Skiplist
Wiki read more (opens new window)
- a common in-memory index type
- to build the
Sorted Set
- allows for fast lookups, range queries, and other operations
- DB used: Redis
https://www.geeksforgeeks.org/skip-list/
https://www.npmjs.com/package/ts-skiplist
# Bloom filter
A Bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set.
Use case:
- avoid attack miss cache attack
Refs
# System design interview
← Redis Notes Sum 100 →