首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Key-Value 存儲基礎問答:Key 生成策略與大文件存儲

     編輯:程式設計綜合問答

Q1:Key 如何生成?

Key 由**業務層指定**,常見策略:

  • 業務自然主鍵:user:1001、order:20240101001
  • 內容哈希:MD5(file)、SHA256(json),實現去重/幂等。
  • UUID/雪花算法:無業務含義的全局唯一標識。
  • 組合鍵:session:{userId}:{deviceId} 支持模式匹配刪除。

**不建議**由存儲引擎自動生成(如自增 ID),因為 KV 通常無序、無自增語義。

Q2:大文件(視頻/圖片)能否直接存 Value?

不能。 參考 Key-Value 存儲不適合大文件,正確做法:

  1. 文件寫入對象存儲(S3/OSS/MinIO),得到 objectKey。
  2. KV 僅存 file:{bizId} → objectKey 或簽名 URL。
  3. 讀取時先查 KV 獲取地址,再從對象存儲下載/簽名直傳。

總結

Key 設計應體現業務語義與查詢模式;大文件必須外移至對象存儲,KV 僅作索引層,實現存算分離與極致擴展性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved