in-memory database,支援眾多 data structures,可利用它作為進程間通訊的中介
可以用 scoop
安裝
註:RedisStack 包含進階功能,如:RedisJSON, RediSearch, RedisTimeSeries, RedisBloom
image | 包含內容 | 適用情境 |
---|---|---|
redis |
Redis | 簡單或 legacy 專案 |
redis/redis-stack-server |
Redis + Redis Stack | 部署到生產環境 |
redis/redis-stack |
Redis + Redis Stack + RedisInsight | 開發、測試 |
☢️ WARNING |
---|
要使用 redis-om 的 find() 功能,必須要使用含 Redis Stack 的 image |
test-redis
redis-server
也會在 container 內運行
redis-cli
,讓我們 debugredis-cli
可以選擇加一個 --raw
options
--raw
options 讓字串得以用 Unicode 格式顯示 (正常顯示非英文字串)記憶體空間注定是有限的,鍵值沒辦法永久留存在記憶體中,需要定期清理。
如何剔除已過期的鍵值
主動刪除 active expiration:隨機挑選剔除
每隔 100 ms 隨機挑選 20 個鍵值,然後刪除過期鍵值,若這 20 個鍵值中,有超過 25% 是過期的鍵值,則會重複這個動作,直到過期比例低於 25%。 (每秒做 10 次,每次挑 20 個鍵值)
被動刪除 passive expiration:查詢發現過期時剔除
當該鍵值被存取到時,若該鍵值已過期,則會先刪除該鍵值,而後回覆空值給應用程式。
記憶體不夠用時,如何剔除鍵值
noeviction
:返回錯誤,不會剔除任何鍵值。allkeys-lru
:針對所有鍵值,使用 LRU 算法剔除鍵值。allkeys-lfu
:針對所有鍵值,使用 LFU 算法剔除鍵值。allkeys-random
:針對所有鍵值,隨機剔除鍵值。volatile-lru
:在設有過期時間的鍵值中,使用 LRU 算法剔除鍵值。volatile-lfu
:在設有過期時間的鍵值中,使用 LRU 算法剔除鍵值。volatile-random
:在設有過期時間的鍵值中,隨機剔除鍵值。volatile-ttl
:在設有過期時間的鍵值中,剔除即將過期的鍵 (最短 TTL)。FLUSHALL
:清除所有資料1
:存在0
:不存在-1
:存在但 forever-2
:不存在L
開頭)S
開頭)H
開頭)Z
開頭)
(命令 X
開頭)
(命令 GEO
開頭)
(命令 PF
開頭)
字串就是 bit 的集合,所以結構上就是字串
字串就是 bit 的集合,所以結構上就是字串
redis-py
redis-om
(將 Pydantic Model 物件存入 Redis)