Overview

Namespaces

  • None
  • sinacloud
    • sae

Classes

  • SaeADPNS
  • SaeAPNS
  • SaeChannel
  • SaeDeferredJob
  • SaeFetchInternal
  • SaeKV
  • SaeMail
  • SaeMysql
  • SaeSegment
  • SaeTAdvance
  • SaeTaskQueue
  • SaeTClientV2
  • SaeTOAuthV2
  • SaeVCode
  • sinacloud\sae\Storage
  • vDisk

Exceptions

  • OAuthException
  • sinacloud\sae\StorageException
  • Overview
  • Namespace
  • Class
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 
<?php
/**
 * SAE KV 服务 API
 *
 * @author Chen Lei <simpcl2008@gmail.com>
 * @version $Id$
 * @package sae
 */

/**
 * SAE KV 服务 API
 *
 * <code>
 * <?php
 * $kv = new SaeKV();
 *
 * // 初始化SaeKV对象 
 * $ret = $kv->init("accesskey"); //访问授权应用的数据
 * var_dump($ret);
 *
 * // 增加key-value
 * $ret = $kv->add('abc', 'aaaaaa');
 * var_dump($ret);
 *
 * // 更新key-value
 * $ret = $kv->set('abc', 'bbbbbb');
 * var_dump($ret);
 * 
 * // 替换key-value
 * $ret = $kv->replace('abc', 'cccccc');
 * var_dump($ret);
 *
 * // 获得key-value
 * $ret = $kv->get('abc');
 * var_dump($ret);
 *
 * // 删除key-value
 * $ret = $kv->delete('abc');
 * var_dump($ret);
 *
 * // 一次获取多个key-values
 * $keys = array();
 * array_push($keys, 'abc1');
 * array_push($keys, 'abc2');
 * array_push($keys, 'abc3');
 * $ret = $kv->mget($keys);
 * var_dump($ret);
 * 
 * // 前缀范围查找key-values
 * $ret = $kv->pkrget('abc', 3);
 * var_dump($ret);
 * 
 * // 循环获取所有key-values 
 * $ret = $kv->pkrget('', 100);
 * while (true) {
 *    var_dump($ret);
 *    end($ret);
 *    $start_key = key($ret);
 *    $i = count($ret);
 *    if ($i < 100) break;
 *    $ret = $kv->pkrget('', 100, $start_key);
 * }
 *
 * // 获取选项信息
 * $opts = $kv->get_options();
 * print_r($opts);
 *
 * // 设置选项信息 (关闭默认urlencode key选项)
 * $opts = array('encodekey' => 0);
 * $ret = $kv->set_options($opts);
 * var_dump($ret);
 *
 * </code>
 *
 * 错误代码及错误提示消息:
 *
 *  - 0  "Success"
 *
 *  - 10 "AccessKey Error"
 *  - 20 "Failed to connect to KV Router Server"
 *  - 21 "Get Info Error From KV Router Server"
 *  - 22 "Invalid Info From KV Router Server"
 * 
 *  - 30 "KV Router Server Internal Error"
 *  - 31 "KVDB Server is uninited"
 *  - 32 "KVDB Server is not ready"
 *  - 33 "App is banned"
 *  - 34 "KVDB Server is closed"
 *  - 35 "Unknown KV status"
 *
 *  - 40 "Invalid Parameters"
 *  - 41 "Interaction Error (%d) With KV DB Server"
 *  - 42 "ResultSet Generation Error"
 *  - 43 "Out Of Memory"
 *  - 44 "SaeKV constructor was not called"
 *  - 45 "Key does not exist"
 *
 * @author Chen Lei <simpcl2008@gmail.com>
 * @version $Id$
 * @package sae
 */

class SaeKV
{
    /**
     * 空KEY前缀
     */
    const EMPTY_PREFIXKEY  = '';

    /**
     * mget获取的最大KEY个数
     */
    const MAX_MGET_SIZE  = 32;
    
    /**
     * pkrget获取的最大KEY个数
     */
    const MAX_PKRGET_SIZE  = 100;

    /**
     * KEY的最大长度
     */
    const MAX_KEY_LENGTH   = 200;

    /**
     * VALUE的最大长度 (4 * 1024 * 1024)
     */
    const MAX_VALUE_LENGTH = 4194304;
    
    
    /**
     * 构造函数
     * @param int $timeout KV操作超时时间,默认为3000ms
     */
    function __construct($timeout=3000) {
    }

    /**
     * 初始化Sae KV 服务
     * 若不加参数,则使用本应用的Kvdb数据,若传入被授权应用的AccessKey,则使用
     * 被授权应用的Kvdb
     * @return bool
     */
    function init($accesskey="") {
    }

    /**
     * 获得key对应的value
     *
     * @param string $key 长度小于MAX_KEY_LENGTH字节
     * @return string|bool 成功返回value值,失败返回false
     * 时间复杂度 O(log N)
     */
    function get($key) {
    }

    /**
     * 更新key对应的value
     *
     * @param string $key 长度小于MAX_KEY_LENGTH字节,当不设置encodekey选项时,key中不允许出现非可见字符
     * @param string $value 长度小于MAX_VALUE_LENGTH
     * @return bool 成功返回true,失败返回false
     * 时间复杂度 O(log N)
     */
    function set($key, $value) {
    }

    /**
     * 增加key-value对,如果key存在则返回失败
     *
     * @param string $key 长度小于MAX_KEY_LENGTH字节,当不设置encodekey选项时,key中不允许出现非可见字符
     * @param string $value 长度小于MAX_VALUE_LENGTH
     * @return bool 成功返回true,失败返回false
     * 时间复杂度 O(log N)
     */
    function add($key, $value) {
    }

    /**
     * 替换key对应的value,如果key不存在则返回失败
     *
     * @param string $key 长度小于MAX_KEY_LENGTH字节,当不设置encodekey选项时,key中不允许出现非可见字符
     * @param string $value 长度小于MAX_VALUE_LENGTH
     * @return bool 成功返回true,失败返回false
     * 时间复杂度 O(log N)
     */
    function replace($key, $value) {
    }
    
    /**
     * 删除key-value
     *
     * @param string $key 长度小于MAX_KEY_LENGTH字节
     * @return bool 成功返回true,失败返回false
     * 时间复杂度 O(log N)
     */
    function delete($key) {
    }

    /**
     * 批量获得key-values
     *
     * @param array $ary 一个包含多个key的数组,数组长度小于等于MAX_MGET_SIZE
     * @return array|bool 成功返回key-value数组,失败返回false
     * 时间复杂度 O(m * log N), m为获取key-value对的个数
     */
    function mget($ary) {
    }

    /**
     * 前缀范围查找key-values
     *
     * @param string $prefix_key 前缀,长度小于MAX_KEY_LENGTH字节
     * @param int $count 前缀查找最大返回的key-values个数,小于等于MAX_PKRGET_SIZE
     * @param string $start_key 在执行前缀查找时,返回大于该$start_key的key-values;默认值为空字符串(即忽略该参数)
     * @return array|bool 成功返回key-value数组,失败返回false
     * 时间复杂度 O(m + log N), m为获取key-value对的个数
     */
    function pkrget($prefix_key, $count, $start_key) {
    }

    /**
     * 获得错误代码
     *
     * @return int 返回错误代码
     */
    function errno() {
    }

    /**
     * 获得错误提示消息
     *
     * @return string 返回错误提示消息字符串
     */
    function errmsg() {
    }

    /**
     * 获取选项值
     *
     * @return array 成功返回选项数组,失败返回false
     * array(1) {
     *   "encodekey" => 1 // 默认为1
     *                    // 1: 使用urlencode编码key;0:不使用urlencode编码key
     * }
     */
    function get_options() {
    }

    /**
     * 设置选项值
     *
     * @param array $options array (1) {
     *   "encodekey" => 1 // 默认为1
     *                    // 1: 使用urlencode编码key;0:不使用urlencode编码key
     * }
     * @return bool 成功返回true,失败返回false
     */
    function set_options($options) {
    }
}

?>
API documentation generated by ApiGen