# API 參考
歡迎查閱 Redis Toolkit 的 API 參考文檔。這裡提供所有公開類別、方法和函數的詳細說明。
# 📚 API 文檔組織
# 🎯 快速導航
# 最常用的 API
# 核心類別
from redis_toolkit import RedisToolkit
# 配置類別
from redis_toolkit import RedisConnectionConfig, RedisOptions
# 轉換器函數
from redis_toolkit.converters import (
encode_image, decode_image,
encode_audio, decode_audio,
get_converter
)
# 工具函數
from redis_toolkit.utils import serialize_value, deserialize_value
from redis_toolkit.utils import with_retry
# 異常類別
from redis_toolkit.exceptions import (
RedisToolkitError,
SerializationError,
ValidationError
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 📖 API 使用範例
# 基本初始化
# 方式 1:使用預設配置
toolkit = RedisToolkit()
# 方式 2:自定義配置
config = RedisConnectionConfig(host='localhost', port=6379)
options = RedisOptions(is_logger_info=True)
toolkit = RedisToolkit(config=config, options=options)
# 方式 3:使用現有 Redis 客戶端
import redis
client = redis.Redis()
toolkit = RedisToolkit(redis=client)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 常用操作
# 存取資料
toolkit.setter("key", {"data": "value"})
data = toolkit.getter("key")
# 批次操作
batch_data = {"key1": "value1", "key2": "value2"}
toolkit.batch_set(batch_data)
results = toolkit.batch_get(["key1", "key2"])
# 發布訂閱
toolkit.publisher("channel", {"message": "Hello"})
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 媒體處理
# 圖片處理
img_bytes = encode_image(image_array, format='jpg')
decoded_img = decode_image(img_bytes)
# 使用轉換器
converter = get_converter('image')
resized = converter.resize(image_array, width=800)
1
2
3
4
5
6
7
2
3
4
5
6
7
# 🔍 API 設計原則
# 1. 簡單直觀
我們的 API 設計遵循「簡單優先」原則:
# ✅ 簡單明瞭
toolkit.setter("key", value)
toolkit.getter("key")
# ❌ 過度複雜
toolkit.storage.persistence.set_with_options("key", value, options={...})
1
2
3
4
5
6
2
3
4
5
6
# 2. 一致性
所有 API 保持一致的命名和行為模式:
setter
/getter
- 基本存取batch_set
/batch_get
- 批次操作encode_*
/decode_*
- 編碼解碼
# 3. 錯誤處理
統一的異常體系,便於錯誤處理:
try:
toolkit.setter("key", problematic_value)
except SerializationError:
# 處理序列化錯誤
except ValidationError:
# 處理驗證錯誤
except RedisToolkitError:
# 處理其他錯誤
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 📊 API 版本和相容性
# 版本策略
我們遵循語意化版本控制(Semantic Versioning):
- 主版本:不相容的 API 變更
- 次版本:向下相容的功能新增
- 修訂版本:向下相容的錯誤修正
# 棄用政策
當 API 需要棄用時:
- 在文檔中標記為
@deprecated
- 發出棄用警告
- 至少保留兩個次版本
- 提供遷移指南
# 棄用範例
@deprecated("使用 toolkit.setter 替代")
def set_value(key, value):
warnings.warn("set_value 已棄用,請使用 setter", DeprecationWarning)
return toolkit.setter(key, value)
1
2
3
4
5
2
3
4
5
# 🎯 API 最佳實踐
# 1. 使用類型提示
from typing import Dict, Any, Optional
def process_data(
key: str,
data: Dict[str, Any],
ttl: Optional[int] = None
) -> bool:
"""處理並儲存資料"""
return toolkit.setter(key, data, ex=ttl)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 2. 參數驗證
# 使用配置類別的驗證功能
config = RedisConnectionConfig(port=6379)
config.validate() # 確保配置有效
# 自定義驗證
if not isinstance(data, (dict, list)):
raise ValidationError("資料必須是 dict 或 list")
1
2
3
4
5
6
7
2
3
4
5
6
7
# 3. 資源管理
# 使用 context manager
with RedisToolkit() as toolkit:
toolkit.setter("key", "value")
# 自動清理資源
# 手動清理
toolkit = RedisToolkit()
try:
# 使用 toolkit
finally:
toolkit.cleanup()
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 📚 深入學習
根據您的需求,選擇相應的 API 文檔深入學習:
提示
- 使用 IDE 的自動完成功能探索 API
- 查看原始碼了解實現細節
- 參考範例程式碼學習最佳實踐