SSDB数据库使用手册

浏览13736
更新时间2022-04-11

SSDB PHP 客户端 API 文档

  • @更新: 2014-11-05

SSDB 是一个高性能 NoSQL 数据库, 支持 zset 数据结构, 用于替代 Redis. 官方网站是 http://ssdb.io. 本文档介绍了 SSDB 的 PHP 客户端 API.

注意: SSDB 所使用的名词 "hashmap", "hash", "map" 表示相同的意思.

类 SimpleSSDB

快速开始

<?php
include_once('SSDB.php');
try{
    $ssdb = new SimpleSSDB('127.0.0.1', 8888);
}catch(SSDBException $e){
    die(LINE . ' ' . $e->getMessage());
}
$ret = $ssdb->set('key', 'value');
if($ret === false){
    // error!
}
echo $ssdb->get('key');

错误处理

如果无法连接到 SSDB 服务器, SimpleSSDB 将抛出异常. 大多数的方法(除了少数几个例外)通过返回 false 来标明出错. 所以要使用强制等于(===)来判断返回值.

如果出现网络错误, 所有的方法将会抛出 SSDBException 异常.

注意: 因为实现的原因, 请保证所有的参数加起来不超过 10MB 大小.

方法

SimpleSSDB::__construct

说明

创建 SimpleSSDB 的实例, 并连接到 SSDB 服务器. 如果无法连接到服务器, 将抛出异常.

参数

  • host - SSDB 服务器的主机名或者 IP.
  • port - SSDB 服务器的端口号.
  • timeout_ms - 可选, 连接超时时间, 和发送接收数据的超时时间, 单位毫秒. 默认是 2000 ms.

返回值

SimpleSSDB 的实例.

示例

$ssdb = new SimpleSSDB('127.0.0.1', 8888);

auth

Since: 1.7.0.0

说明

配置密码, 之后将用于向服务器校验. 这个校验不是立即进行的, 而是等你执行第一条命令的时候才发给服务器. 注意, 密码是明文传输的!

参数

  • password -

返回值

出错则返回 false, 否则返回 null.

示例

$ssdb->auth('very-strong-password');

set

说明

设置指定 key 的值内容.

参数

  • key -
  • value -

返回值

出错则返回 false, 其它值表示正常.

示例

$ssdb->set('key', 'value');

setx

说明

设置指定 key 的值内容, 同时设置存活时间.

参数

  • key -
  • value -
  • ttl - 存活时间(秒)

返回值

出错则返回 false, 其它值表示正常.

示例

$ssdb->setx('key', 'value', 60);

setnx

说明

当 key 不存在时, 设置指定 key 的值内容. 如果已存在, 则不设置.

参数

  • key -
  • value -

返回值

出错则返回 false, 1: value 已经设置, 0: key 已经存在, 不更新.

示例

$ssdb->setnx('key', 'value');

expire

说明

设置 key(只针对 KV 类型) 的存活时间.

参数

  • key -
  • ttl - 存活时间(秒)

返回值

出错则返回 false. 如果 key 存在并设置成功, 返回 1, 如果 key 不存在, 返回 0.

示例

$ssdb->expire('key', 60);

ttl

说明

返回 key(只针对 KV 类型) 的存活时间.

参数

  • key -

返回值

出错则返回 false, 否则返回 key 的存活时间(秒), -1 表示没有设置存活时间.

示例

$ssdb->ttl('key');

get

说明

获取指定 key 的值内容.

参数

  • key -

返回值

如果 key 不存在则返回 null, 如果出错则返回 false, 否则返回 key 对应的值内容.

示例

$ssdb->get('key');

getset

说明

更新 key 对应的 value, 并返回更新前的旧的 value.

参数

  • key -
  • value -

返回值

如果 key 不存在则返回 null, 如果出错则返回 false, 否则返回 key 对应的值内容.

示例

$ssdb->getset('key', 'value');

del

说明

删除指定的 key.

参数

  • key -

返回值

如果出错则返回 false, 其它值表示正常. 你无法通过返回值来判断被删除的 key 是否存在.

示例

$ssdb->del('key');

incr

从 1.7.0.1 起, 如果 value 不能转换成整数, incr 会返回错误.

说明

使 key 对应的值增加 num. 参数 num 可以为负数. 如果原来的值不是整数(字符串形式的整数), 它会被先转换成整数.

参数

  • key -
  • num - 可选, 必须是有符号整数, 默认是 1.

返回值

如果出错则返回 false, 否则返回新的值.

示例

$ssdb->incr('key', 1);

exists

说明

判断指定的 key 是否存在.

参数

  • key -

返回值

如果存在, 返回 true, 否则返回 false.

示例

$ssdb->exists('key');

getbit

说明

获取字符串内指定位置的位值(BIT).

参数

  • key -
  • offset - 位偏移

返回值

返回位值(0 或 1), 如果 key 不存在或者偏移超过活字符串长度范围, 返回 0.

示例

$ssdb->getbit('key', 9);

setbit

说明

设置字符串内指定位置的位值(BIT), 字符串的长度会自动扩展.

参数

  • key -
  • offset - 位偏移, 取值范围 [0, 1073741824]
  • val - 0 或 1

返回值

返回原来的位值. 如果 val 不是 0 或者 1, 返回 false.

示例

$ssdb->setbit('key', 9, 1);

bitcount

说明

计算字符串的子串所包含的位值为 1 的个数. 若 start 是负数, 则从字符串末尾算起. 若 end 是负数, 则表示从字符串末尾算起(包含). 类似 Redis 的 bitcount

参数

  • key -
  • start - 可选, 子串的字节偏移
  • end - 可选

返回值

返回位值为 1 的个数. 出错返回 false.

示例

$ssdb->bitcount('key', 2, 10);

countbit

说明

计算字符串的子串所包含的位值为 1 的个数. 若 start 是负数, 则从字符串末尾算起. 若 size 是负数, 则表示从字符串末尾算起, 忽略掉那么多字节.

参数

  • key -
  • start - 可选, 子串的字节偏移
  • size - 可选, 子串的长度(字节数), 默认为到字符串最后一个字节

返回值

返回位值为 1 的个数. 出错返回 false.

示例

$ssdb->countbit('key', 2, 10);

substr

说明

获取字符串的子串. 若 start 是负数, 则从字符串末尾算起. 若 size 是负数, 则表示从字符串末尾算起, 忽略掉那么多字节(类似 PHP 的 substr()).

参数

  • key -
  • start - 可选, int, 子串的字节偏移
  • size - 可选, int, 子串的长度(字节数), 默认为到字符串最后一个字节

返回值

字符串的子串.

示例

$ssdb->substr('key', 2, 10);

strlen

说明

计算字符串的长度(字节数).

参数

  • key -

返回值

返回字符串的长度, key 不存在则返回 0.

示例

$ssdb->strlen('key');

keys/rkeys

说明

列出处于区间 (key_start, key_end] 的 key 列表.

("", ""] 表示整个区间.

参数

  • key_start - 返回的起始 key(不包含), 空字符串表示 -inf.
  • key_end - 返回的结束 key(包含), 空字符串表示 +inf.
  • limit - 最多返回这么多个元素.

返回值

如果出错则返回 false, 否则返回包含 key 的数组.

示例

$ssdb->keys('a', 'z', 10);

scan

说明

列出处于区间 (key_start, key_end] 的 key-value 列表.

("", ""] 表示整个区间.

参数

  • key_start - 返回的起始 key(不包含), 空字符串表示 -inf.
  • key_end - 返回的结束 key(包含), 空字符串表示 +inf.
  • limit - 最多返回这么多个元素.

返回值

如果出错则返回 false, 否则返回包含 key-value 的数关联组.

示例

$ssdb->scan('a', 'z', 10);
遍历 key-value 对列表
$start = ''; 
$limit = 1000;
while(1){
    $kvs = $ssdb->scan($start, '', $limit);
    if(!$kvs){
        break;
    }
    // do something on key-value pairs...
    $keys = array_keys(array_slice($kvs, -1, 1, true));
    $max_key = $keys[0];
    $start = $max_key;
}

rscan

说明

列出处于区间 (key_start, key_end] 的 key-value 列表, 反向顺序.

("", ""] 表示整个区间.

参数

  • key_start - 返回的起始 key(不包含), 空字符串表示 +inf.
  • key_end - 返回的结束 key(包含), 空字符串表示 -inf.
  • limit - 最多返回这么多个元素.

返回值

如果出错则返回 false, 否则返回包含 key-value 的数关联组.

示例

$ssdb->rscan('a', 'z', 10);

multi_set

说明

批量设置一批 key-value.

参数

  • kvs - 包含 key-value 的关联数组 .

返回值

出错则返回 false, 其它值表示正常.

示例

$ssdb->multi_set(array(
    'a' => 1,
    'b' => 2,
));

multi_get

说明

批量获取一批 key 对应的值内容.

参数

  • keys - 包含 key 的数组 .

返回值

如果出错则返回 false, 否则返回包含 key-value 的关联数组, 如果某个 key 不存在, 则它不会出现在返回数组中.

示例

$ssdb->multi_get(array('k1', 'k2'));

相关视频

更多

免费

MySQLi面向过程极速入门
中级MySQLi面向过程极速入门

13.3万次学习

收藏

免费

MySQLi面向对象编程极速入门
中级MySQLi面向对象编程极速入门

7.5万次学习

收藏

免费

MySQL权威开发指南(教程)
初级MySQL权威开发指南(教程)

15.9万次学习

收藏

免费

ECMAScript 6 入门
中级ECMAScript 6 入门

1.4万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

64.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.2万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.6万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.3万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载