Redis - A simple syntax to describe how data stored
在使用 redis 時,資料怎樣在 redis 內存放常會需要設計,或是需要拿出來跟團隊溝通討論。用畫圖表述或是列表有點不方便,redis 資料結構豐富也不是很好表示。
這邊筆者嘗試定義簡易的表示方式。
String 型態表示方式…
$string-key => $string-value
Hash 型態表示方式…(設計概念為 Dictionary)
$hash-key => {
{$field-key, $field-value},
...
}
List 型態表示方式…(設計概念為 Array)
$list-key => [
$list-value,
...
]
Set 型態表示方式…(設計概念為 Set)
$set-key => {
$set-value,
...
}
SortedSet 表示方式…(設計概念為 Tuple set)
$sorted-set-key => {
($score, $set-value),
...
}
像是 Redis reliable queue 那篇的設計…
用這樣的表示方式設計就會變成這樣:
pending => [$data-id, ...]
working:$worker-id => [$data-id, ...]
value => {
{$data-id, $data},
...
}
使用情境的描述就會像下面這樣:
pending => [6, 5]
working:1 => [2, 1]
working:2 => [4, 3]
value => {
{1, "{\"Name\": \"Larry\"}"},
{2, "{\"Name\": \"Tom\"}"},
{3, "{\"Name\": \"Bob\"}"},
{4, "{\"Name\": \"John\"}"},
{5, "{\"Name\": \"Ryan\"}"},
{6, "{\"Name\": \"Andrew\"}"},
}