发布于 2016-10-29 08:04:52 | 187 次阅读 | 评论: 0 | 来源: PHPERZ

SSDB 的客户端 API ⽀支持 PHP, Java 等语⾔言, 下⽂文通过⼀一个例⼦子, 如何使⽤用 SSDB 开发⼀一个在线书店网站, 以 PHP 为例.

示例 1: 在线书店

保存书籍信息

$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 来表示忽略截⽌止年份.

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务