在使用 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 那篇的設計…

1.png

用這樣的表示方式設計就會變成這樣:

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"}”}, }