本文分享自華為雲社群《還不知道資料庫快取使用場景?舉例使用場景例項和命令速查表》,作者:碼樂。
怎樣使用
我們繼續的動力通常來自有某個問題,或者我們有了一個工具,通常會想,它可以解決什麼型別的問題?
在使用時應注意什麼它?在我們回答這些問題中的任何一個之前,我們需要了解它是什麼。
Redis通常被描述為記憶體中持久鍵值儲存。它確實將所有資料儲存在記憶體中,並且確實將其寫到磁碟上以實現永續性,但是不僅僅是一個簡單的鍵值儲存。
重要的是要走出這種誤解,否則您的觀點及其解決的問題將太狹窄。現實是Redis公開了五種不同的資料結構,其中只有一種是典型的鍵值結構。
瞭解這五個資料結構,它們如何工作,它們公開了哪些方法以及可以使用哪些模型進行建模它們是瞭解Redis的關鍵。
典型的Sql資料庫只有一種資料結構 那就是 表 tables, 表可以是 即複雜又靈活(both complex and flexible)。
但是通常很難對 表 做 建模,儲存或操作 (model,store, or manipulate).它們的通用性並非沒有缺點。
這裡沒有表那樣的千篇一律的結構 a one-size-fits-all structure, 相反處理標量,列表,雜湊或集合,就直接將它們儲存為標量,列表,雜湊和集合。
scalars, lists, hashes, or sets
不需要如mysql一般檢查 是否 存在 值 , 比呼叫exist(key)更復雜,或者比O(1)慢。
不過這裡,讓我們集中討論具體應用例子和指令含義結構。
舉例:
檢視 fibonacci 數列 第35個fibonacci數列值的計算,不使用快取對比使用快取 時間成本是6倍
使用快取 不使用快取 計算第10個fibonacci數 0.05 0.05 計算第35個fibonacci數 0.05 6.9 計算第40個Fibonacci數 0.05 超時....
非確定性快取 — 當不確定他們表示狀態是否與其他系統元件(後臺服務)狀態一致時,一種權衡。
當快取記憶體 時間小於 函式時間,那麼快取就是有效的適用
關係型資料庫以及常用任何型別的結構化資料儲存引擎。
Web Api 訪問的第三方服務
檔案系統,非常頻繁訪問的檔案
向多個使用者提供 資料或服務
程式共享相同快取結果,既減少寶貴的計算資源佔用,又解決由多個獨立並且不一致的快取引起的問題
Redis 是一種開源NoSQL資料庫,使用ANSI與C寫成,一種記憶體資料結構服務,用於儲存從記憶體提供的所有資料。並使用磁碟進行儲存。
僅透過RediSearch模組支援二級索引,mongo支援絕大多數二級索引,不支援Map Reduce方法,mongodb支援 map reduce方法。
做為快取訊息佇列
阻塞操作的RPOP,BRPOP,無需輪詢判斷佇列是不是有新元素
客戶端1開啟監聽 並阻塞shell_client1: BRPOP list1 0
shell_client2: LPUSH list1 a
客戶端1 立即收到訊息並退出
優點:能夠實現持久化
採用 Master-Slave 資料複製模式。
佇列操作都是寫操作,Master任務繁重,能讓Slave分擔的持久化工作,就不要Master做。
RDB和AOF兩種方法都用上,多重保險。
支援叢集
介面使用簡單
Redis上訊息只會被一個消費者消費,不會有多個訂閱者消費同一個訊息,簡單一對一
生產者或者消費者崩潰後的處理機制,需要自己實現
生產者寫入太快,消費者消費太慢,導致Redis的記憶體問題,處理機制需要自己實現
透過pub/sub來實現
訊息佇列的實現特點:
- 一個客戶端釋出,允許多個客戶端 多次消費。
- 即發即棄: 非持久化訊息機制,釋出者和訂閱者必須同時線上。
- 不保證資料完整性。
- 不支援訊息確認機制 Ack/Nack/Reject 需要自己在應用層面實現,但如果這樣,可以直接使用MQ,ZeroMq,RobbitMQ,Kafka(需要另啟用獨立服務)。
- 釋出、訂閱 pub/sub。 List, SortedSet, Streams 都支援訊息持久化,需要避免訊息堆積,造成記憶體壓力。
與其他佇列對比:
1 基於channel訊息 這一類訊息和redis中儲存 keys沒有太多關聯。 即使不在redis儲存任何keys資訊,這類訊息也可以獨立使用。 2 基於redis儲存的keys資訊變化事件進行通知。 可以用於向訂閱者通知redis符合訂閱條件keys的各種事件。 3 Streams 流式佇列計算 redis > 5 所有提交的訊息按順序串為一個訊息鏈 Stream允許 重複消費,支援ACK
訊息佇列相關命令:
XADD - 新增訊息到末尾 使用 XADD 向佇列新增訊息,如果指定的佇列不存在,則建立一個佇列, XADD 語法格式: XADD key ID field value [field value ...] key :佇列名稱,如果不存在就建立 ID :訊息 id,我們使用 * 表示由 redis 生成,可以自定義,但是要自己保證遞增性。 field value : 記錄。 XTRIM - 對流進行修剪,限制長度 使用 XTRIM 對流進行修剪,限制長度, XDEL - 刪除訊息 使用 XLEN 獲取流包含的元素數量,即訊息長度,語法格式: XLEN - 獲取流包含的元素數量,即訊息長度 XRANGE - 獲取訊息列表,會自動過濾已經刪除的訊息 XREVRANGE - 反向獲取訊息列表,ID 從大到小 XREAD - 以阻塞或非阻塞方式獲取訊息列表
消費者組相關命令:
XGROUP CREATE - 建立消費者組 XREADGROUP GROUP - 讀取消費者組中的訊息 XACK - 將訊息標記為"已處理" XGROUP SETID - 為消費者組設定新的最後遞送訊息ID XGROUP DELCONSUMER - 刪除消費者 XGROUP DESTROY - 刪除消費者組 XPENDING - 顯示待處理訊息的相關資訊 XCLAIM - 轉移訊息的歸屬權 XINFO - 檢視流和消費者組的相關資訊; XINFO GROUPS - 列印消費者組的資訊; XINFO STREAM - 列印流資訊
做為臨時快取 和 頁面快取
與將資料儲存在磁碟上的資料庫相比,Redis 的所有資料都駐留在記憶體中,避免了尋道時間延遲,並且可以在微秒內超快地訪問資料。
通常,Redis 用於快取資料庫查詢結果,用於啟用物件快取,而不是頁面快取。
使用Nginx SRCache 模組,我們可以使用 Redis 服務於不同的目的,提供基於子請求的頁面快取,作為 Nginx FastCGI Cache 的替代方案。
例子 用於每個ip的訪問計數,以及 每個使用者 ID 的不同 IP 地址集(用於濫用檢測)
1. 要抓取的網站列表。 2.所有抓取的頁面都應該被儲存。 3. 為不同型別的網站定義頻率 - 新網站應該經常被抓取 4. 考慮robot.txt 來確定什麼不應該被抓取 5. 瞭解頁面是否有任何變化,如果有,重新抓取。 6. 解析並堅持。
需要一個佇列以獲得 BST 那種體驗的資料結構
1. Set : Key 是 URL 的 hash,value 是解析後的內容 2. Zset: Key 作為 URL 和時間戳的 hash
Queue - FIFO。將檢查內容是否在 Set 中可用,如果沒有,則它將與 Zset 一起儲存在 Set 中。
涉及技術
- 布隆過濾器,用於確定頁面是否不存在於儲存中。這是Redis中的OOB。
- 對於頁面修改,依賴修改時間、MD5 等,這可以作為一個單獨的集合持久化。
做為其他資料庫的快取資料庫
分類確定性快取 — 記憶化 — functools.lru_cache(maxsize, typed) 裝飾器 Least recently used, maxsizd
設定快取記憶體的空間上限,None表示沒有限制, typed 定義不同型別的值是否應該被快取為相同結果。
給定完全相同輸入,確定性函式總是返回相同的值。可以無期限儲存他們的結果。 在程式記憶體中快取,檢索時最快的。
最佳化遞迴函式,針對多次相同的輸入進行計算。
redis伺服器指令碼為 Lua
提供獨特資料模型和高效能,可支援各種資料結構:字串,列表,集合,雜湊,可用於資料庫快取或訊息代理。 不支援RDBMS,SQL,ACID事務。
單核,安裝簡單,最大金鑰2G。
使用列表,字串,雜湊,排序集,點陣圖(常用於地理資訊系統) 作為資料結構。
支援主從複製,多主從複製。
具有文件儲存,圖形DBMS,搜尋引擎,時間序列DBMS作為 輔助資料庫模型。
支援持久化,支援分片。
1, 確定 資料是否被應用程式 重複讀取 2, 確認 訪問快取資料的 key 鍵格式 3, 選擇 正常的 redis 資料 型別 4,允許 value 值 生存時間 TTL time-to-live 5, 決定資料 驅逐策略 Decide the eviction policy 6, 實現讀寫邏輯
高速訂閱服務
釋出訂閱的三種實現:
Pub/Sub publish <channel name><message> subscribe <channel name> List lpush <list_name> <message> brpop <list_name> <timeout> # timeout 是必填引數 Sorted Set zadd <timeseries name> <timestamp> <message> zrangebyscore <timeseries name> <last timestamp> <current timestamp> WITHSCORS
記憶體資料庫 會話資料庫 Session Store
app會話需要頻繁讀寫 Session based apps with frequent reads and writes
app會話間的資料需要隔離 Data is isolated between sessions
例如
電子商務 e-Commerce, 遊戲 gaming,社交應用 social applications
設計一個會話資料庫
1,確定儲存 會話資料的表結構
2,確定 redis對應的 資料結構
3,列出需求,開發redis 對應的結構
4,決定程式 載入會話資料(session data)和 怎樣從redis再同步資料 到 mysql
5,修改資料訪問層 或 應用app
流量限制 Rate Limiting
內建工具:
- redis 內建計數器 Built-in counters
- 訪問生存資料 TTL
- 執行緒安全 從架構上保證 事務操作序列正確
- 流控簡單實現 結構
web_server Queue Cache/Lock Query Worker
LUA指令碼 使用 INCR 與 EXPIRE 操作實現 流量限制
Lua指令碼 如果需要限流 limit 選擇操作
// redis 限流功能 每分鐘 300000 呼叫
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
Geo資料
#Search - RediSearch
地球環境指標 #Geo Spatial Indexing
最具價效比的 資料管理和縮放操作
資料以更快速度存取。
在高業務壓力場景下 保持應用程式的響應。
克服 資料庫的 物理能力限制(特別是磁碟資料的效能問題)。
附 常用指令錶速查
注:命令的使用與大小寫無關。
比如: DEL = DEl = dEL = dEl = DeL = DeL…
Redis 鍵(key)相關 命令命令 描述,
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
counter = Redis.call(INCR call_counter) IF counter < 300000 // Expire the key in 60s IF counter == 0 THEN Redis.call(EXPIRE call_counter 60) END IF // run db query END IF
命令 描述
Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
命令 描述
Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
命令 描述
Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
Redis HyperLogLog 命令
命令 描述Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
命令 描述
Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
命令 描述
Redis Client Pause 命令 在指定時間內終止執行來自客戶端的命令
Redis Debug Object 命令 獲取 key 的除錯資訊
Redis Flushdb 命令 刪除當前資料庫的所有key
Redis Save 命令 非同步儲存資料到硬碟
Redis Showlog 命令 管理 redis 的慢日誌
Redis Lastsave 命令 返回最近一次 Redis 成功將資料儲存到磁碟上的時間,以 UNIX 時間戳格式表示
Redis Config Get 命令 獲取指定配置引數的值
Redis Command 命令 獲取 Redis 命令詳情陣列
Redis Slaveof 命令 將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除所有資料庫的所有key
Redis Dbsize 命令 返回當前資料庫的 key 的數量
Redis Bgrewriteaof 命令 非同步執行一個 AOF(AppendOnly File) 檔案重寫操作
Redis Cluster Slots 命令 獲取叢集節點的對映陣列
Redis Config Set 命令 修改 redis 配置引數,無需重啟
Redis Command Info 命令 獲取指定 Redis 命令描述的陣列
Redis Shutdown 命令 非同步儲存資料到硬碟,並關閉伺服器
Redis Sync 命令 用於複製功能(replication)的內部命令
Redis Client Kill 命令 關閉客戶端連線
Redis Role 命令 返回主從例項所屬的角色
Redis Monitor 命令 實時列印出 Redis 伺服器接收到的命令,除錯用
Redis Command Getkeys 命令 獲取給定命令的所有鍵
Redis Client Getname 命令 獲取連線的名稱
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計資料
Redis Command Count 命令 獲取 Redis 命令總數
Redis Time 命令 返回當前伺服器時間
Redis Info 命令 獲取 Redis 伺服器的各種資訊和統計數值
Redis Config rewrite 命令 對啟動 Redis 伺服器時所指定的 redis.conf 配置檔案進行改寫
Redis Client List 命令 獲取連線到伺服器的客戶端連線列表
Redis Client Setname 命令 設定當前連線的名稱
Redis Bgsave 命令 在後臺非同步儲存當前資料庫的資料到磁碟
小結
以下場景適用快取。
查詢資料庫的可呼叫項的結果。
渲染為靜態值的可呼叫項結果,例如檔案內容,Web請求或PDF渲染。
執行復雜計算的確定性可呼叫物件結果。
全域性對映,用於跟蹤到期時間的值,如Web會話物件。
需要經常和快速訪問的結果。
儲存透過Web服務獲得的第三代Api結果。 減少延遲