发布于 2016-10-29 08:04:52 | 209 次阅读 | 评论: 0 | 来源: PHPERZ
SSDB 的客户端 API ⽀支持 PHP, Java 等语⾔言, 下⽂文通过⼀一个例⼦子, 如何使⽤用 SSDB 开发⼀一个在线书店网站, 以 PHP 为例.
保存书籍信息
$book = array(
'id'=>'10001',
'title'=>'Honglou Meng',
'author'=>'CaoXueqin',
'pub_year'=>'1784'
);
$ssdb->hset('books', $book['id'], json_encode($book));
书籍信息经过 json_encode() 序列化成⽂文本后, 以书籍 ID 为 key 保存在⼀一个 Hashmap 集合⾥. 当然, 你也可以使⽤用其它的序列化⽅方式, SSDB ⽀支持任意字节流作为数据.
在 books 集合中, 书籍信息按 ID(字符串, 不是整数) 进⾏行排序, 但实际应⽤用中, 书籍的排序需求有很多, 例如按出版⽇日期年份, 所以需要⽤用 Zset 来建立排序索引.
$score = intval($book['pub_year']);
$ssdb->zset('books_sorted_by_pub_year', $book_key, $score);
如何还有其它的排序需求, 再使⽤用更多的 Zset 来建⽴立索引.
// list 10 books that published after year 1784
$zset = 'books_sorted_by_pub_year';
$book_keys = $ssdb->zscan($zset, '', 1784, null, 10);
$books = $ssdb->multi_hget('books', array_keys($book_keys));
这段代码获取了 1784 年之后(不包括 1784 年)出版的 10 本书籍. Zscan() 函数从 Zset 排序集合中读取这 10 本书的 ID, 然后批量从 books Hashmap 集合中读取 10 本书籍的详细信息.
Zscan() 函数的第 2 个参数被设置为空字符串, 该参数⽤用于处理相同年份的情况, 这⾥里为了简单演示, 所以传空字符串, 表⽰示不关⼼心相同年份的情况.
第 4 个参数被设置为 null, 这个参数表⽰示截⽌止年份, 通过 null 来表示忽略截⽌止年份.