本文分享自華為雲社區《還不知道資料庫緩存使用場景?舉例使用場景實例和命令速查表》,作者:碼樂。 怎樣使用 我們繼續的動力通常來自有某個問題,或者我們有了一個工具,通常會想,它可以解決什麼類型的問題? 在使用時應註意什麼它?在我們回答這些問題中的任何一個之前,我們需要瞭解它是什麼。 Redis通常被描 ...
本文分享自華為雲社區《還不知道資料庫緩存使用場景?舉例使用場景實例和命令速查表》,作者:碼樂。
怎樣使用
我們繼續的動力通常來自有某個問題,或者我們有了一個工具,通常會想,它可以解決什麼類型的問題?
在使用時應註意什麼它?在我們回答這些問題中的任何一個之前,我們需要瞭解它是什麼。
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
客戶端2 存入消息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作為 輔助資料庫模型。
支持持久化,支持分片。
如何在redis中 設計一個緩存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 IFRedis 字元串(String) 命令
命令 描述
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 IFRedis 哈希(Hash) 命令
命令 描述
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 IFRedis 列表(List) 命令
命令 描述
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 IFRedis 集合(Set) 命令
命令 描述
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 IFRedis 有序集合(sorted set) 命令
命令 描述
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 IFRedis 連接 命令
命令 描述
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 IFRedis 伺服器 命令
命令 描述
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 腳本 命令
命令 描述
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 事務 命令
命令 描述
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 發佈訂閱 命令
命令 描述
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 地理位置(geo) 命令
命令 描述
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結果。 減少延遲