列舉資料庫緩存使用場景實例和命令速查表

来源:https://www.cnblogs.com/huaweiyun/archive/2023/11/24/17853759.html
-Advertisement-
Play Games

本文分享自華為雲社區《還不知道資料庫緩存使用場景?舉例使用場景實例和命令速查表》,作者:碼樂。 怎樣使用 我們繼續的動力通常來自有某個問題,或者我們有了一個工具,通常會想,它可以解決什麼類型的問題? 在使用時應註意什麼它?在我們回答這些問題中的任何一個之前,我們需要瞭解它是什麼。 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 IF
Redis 字元串(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 IF
Redis 哈希(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 IF
Redis 列表(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 IF
Redis 集合(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 IF
Redis 有序集合(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 IF
Redis 連接 命令

命令 描述

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 伺服器 命令

命令 描述

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結果。 減少延遲

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Date類: 1.1、將字元串型時間日期轉化為date類型 String timeString = "2023-11-17 09:27:00"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間 ...
  • SCM(Service Control Manager)服務管理器是 Windows 操作系統中的一個關鍵組件,負責管理系統服務的啟動、停止和配置。服務是一種在後臺運行的應用程式,可以在系統啟動時自動啟動,也可以由用戶或其他應用程式手動啟動。本篇文章中,我們將通過使用 Windows 的服務管理器(... ...
  • 這一篇內容可能相對較少,但是迭代器在Java中是有用處的。因此,我想介紹一下Python中迭代器的使用方法。除了寫法簡單之外,Python的迭代器還有一個最大的不同之處,就是無法直接判斷是否還有下一個元素。我們只能通過捕獲異常或使用for迴圈來退出迭代,這點讓我感到十分驚訝。 ...
  • 稀疏矩陣是一種特殊的矩陣,其非零元素數目遠遠少於零元素數目,並且非零元素分佈沒有規律。這種矩陣在實際應用中經常出現,例如在物理學、圖形學和網路通信等領域。 稀疏矩陣其實也可以和一般的矩陣一樣處理,之所以要把它區分開來進行特殊處理,是因為:一方面稀疏矩陣的存儲空間開銷通常比稠密矩陣要小得多,可以節省存 ...
  • 說明: Redis是一個開源的,由C語言編寫的高性能NoSQL資料庫,因其高性能、可擴展、相容性強,被各大小互聯網公司或個人作為記憶體型存儲組件使用。 但是其中有小部分公司或個人開發者,為了方便調試或忽略了安全風險,沒有設置密碼並直接對外開放了6379埠,那麼這就是一個危險的行為。 漏洞成因: 未對 ...
  • 四、Linux幫助使用 1、Tab鍵的作用 當所輸入的關鍵字具有唯一性時,一次Tab則自動補齊 所輸入的關鍵字不具有唯一性,則系統會列出所有該關鍵字開頭的內容 補齊命令 補齊參數 2、歷史記錄 history:查看所有歷史記錄 history N :列出最近N條歷史記錄 !N:調用第N條歷史記錄 ! ...
  • 1. 條件查詢 條件查詢是通過where子句進行檢索的查詢方式。 select 欄位名1, 欄位名2, …, 欄位名n from 數據表名 where 查詢條件 1. 如何使用排序(升序,降序)? asc:表示升序(預設排序方式) desc:降序 排序語法:select ... from 表名 [條 ...
  • 隨著中國經濟的快速發展,經濟結構不斷優化,各個行業也在不斷變革和發展。以前的傳統製造業逐漸被新興產業取代,技術革新和創新成為推動中國經濟發展的核心力量。在未來,哪些行業會成為未來500強的主角呢? 根據挖數據平臺數據顯示,從2006年至今,中國企業500強中,收入總和不斷攀升,排名也在不斷變化。 在 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...