• php redis 操作大全


    类和方法


    用法

    1. Redis类
    2. 类RedisException
    3. 预定义的常量

    Redis类


    说明:创建一个Redis客户端

    $redis = new Redis();
    

    类RedisException


     如果无法到达Redis服务器,则phpredis会抛出一个  RedisException对象。如果出现连接问题,Redis服务关闭或Redis主机过载,则可能会发生这种情况。在任何其他有问题的情况下,不涉及无法访问的服务器(例如不存在的密钥,无效的命令等),phpredis将返回  FALSE

    预定义的常量


    说明:可用的Redis常量

    Redis数据类型,按类型返回 

    Redis::REDIS_STRING - String
    Redis::REDIS_SET - Set
    Redis::REDIS_LIST - List
    Redis::REDIS_ZSET - Sorted set
    Redis::REDIS_HASH - Hash
    Redis::REDIS_NOT_FOUND - Not found / other
    

    @TODO:OPT_SERIALIZER,之后,之前...

    连接

    1. 连接,打开  - 连接到服务器
    2. pconnect,popen  - 连接到服务器(持久)
    3. auth  - 对服务器进行身份验证
    4. 选择  - 更改当前连接的选定数据库
    5. 关闭  - 关闭连接
    6. setOption  - 设置客户端选项
    7. getOption  - 获取客户端选项
    8. ping  - Ping服务器
    9. 回声  - 回声给定的字符串

    连接,打开


    说明:连接到Redis实例。

    参数

    主机:字符串。可以是主机,也可以是unix域套接字端口的路径  :int,可选  timeout:float,以秒为单位的值(可选,默认值为0意味着不受限制)  reserved:如果指定retry_interval则为NULL  retry_interval:int,以毫秒为单位的值(可选的)

    返回值

    BOOL:  TRUE 成功时,  FALSE 出错。

    $redis->connect('127.0.0.1', 6379);
    $redis->connect('127.0.0.1'); // port 6379 by default
    $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.
    $redis->connect('/tmp/redis.sock'); // unix domain socket.
    $redis->connect('127.0.0.1', 6379, 1, NULL, 100); // 1 sec timeout, 100ms delay between reconnection attempts.
    

    连接,打开


    说明:连接到Redis实例或重新使用与pconnect建立的连接  popen

    close 直到php进程结束,连接才会被请求关闭  或结束。因此,当连接到一台Redis服务器的许多服务器上使用持久连接时,请耐心等待许多开放的FD(特别是在Redis服务器端)。

    也可以通过host + port + timeout或host + persistent_id或unix套接字+超时识别多个持久连接。

    此功能在线程版本中不可用。 pconnect 而  popen 随后的工作就像他们的非持久的等价物。

    参数

    主机:字符串。可以是主机,也可以是unix域套接字端口的路径  :int,可选  timeout:float,以秒为单位的值(可选,默认为0意味着无限制)  persistent_id:string。请求的持久连接的身份  retry_interval:int,以毫秒为单位的值(可选)

    返回值

    BOOL:  TRUE 成功时,  FALSE 出错。

    $redis->pconnect('127.0.0.1', 6379);
    $redis->pconnect('127.0.0.1'); // port 6379 by default - same connection like before.
    $redis->pconnect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout and would be another connection than the two before.
    $redis->pconnect('127.0.0.1', 6379, 2.5, 'x'); // x is sent as persistent_id and would be another connection than the three before.
    $redis->pconnect('/tmp/redis.sock'); // unix domain socket - would be another connection than the four before.
    

    AUTH


    说明:使用密码验证连接。 警告:密码通过网络以纯文本形式发送。

    参数

    STRING:密码

    返回值

    BOOL:  TRUE 如果连接被认证,  FALSE 否则。

    $redis->auth('foobared');
    

    选择


    说明:更改当前连接的选定数据库。

    参数

    INTEGER:dbindex,切换到的数据库编号。

    返回值

    TRUE 在成功FALSE 的情况下,  在失败的情况下。

    请参阅方法举例:  移动


    说明:从Redis实例断开连接,除了  pconnect 使用时。

    的SetOption


    说明:设置客户端选项。

    参数

    参数名称 参数值

    返回值

    BOOL:  TRUE 成功时,  FALSE 出错。

    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);   // don't serialize data
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);    // use built-in serialize/unserialize
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);   // use igBinary serialize/unserialize
    
    $redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys
    
    /* Options for the SCAN family of commands, indicating whether to abstract
       empty results from the user.  If set to SCAN_NORETRY (the default), phpredis
       will just issue one SCAN command at a time, sometimes returning an empty
       array of results.  If set to SCAN_RETRY, phpredis will retry the scan command
       until keys come back OR Redis returns an iterator of zero
    */
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
    

    getOption


    说明:获取客户选项。

    参数

    参数名称

    返回值

    参数值。

    $redis->getOption(Redis::OPT_SERIALIZER);   // return Redis::SERIALIZER_NONE, Redis::SERIALIZER_PHP, or Redis::SERIALIZER_IGBINARY.
    

    ping


    说明:检查当前的连接状态

    参数

    (没有)

    返回值

    STRING:  +PONG 成功。 如上所述,抛出一个连接错误的  RedisException对象。

    回声


    说明:向Redis发送一个字符串,该字符串以相同的字符串回复

    参数

    STRING:要发送的消息。

    返回值

    STRING:相同的信息。

    服务器

    1. bgRewriteAOF  - 异步重写仅附加文件
    2. bgSave  - 将数据集异步保存到磁盘(在后台)
    3. config  - 获取或设置Redis服务器配置参数
    4. dbSize  - 返回选定数据库中的键数
    5. flushAll  - 删除所有数据库中的所有密钥
    6. flushDb  - 从当前数据库中删除所有密钥
    7. info  - 获取有关服务器的信息和统计信息
    8. lastSave  - 获取最后一次磁盘保存的时间戳
    9. resetStat  - 重置info  方法返回的统计  信息
    10. 保存  - 同步将数据集保存到磁盘(等待完成)
    11. slaveOf  - 使服务器成为另一个实例的从属服务器,或将其提升为主服务器
    12. 时间  - 返回当前服务器时间
    13. slowLog  - 访问Redis slowLog条目

    bgRewriteAOF


    说明:启动AOF的后台重写(仅附加文件)

    参数

    没有。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->bgRewriteAOF();
    

    bgSave


    说明:将数据集异步保存到磁盘(在后台)

    参数

    没有。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。如果保存已经运行,该命令将失败并返回  FALSE

    $redis->bgSave();
    

    配置


    说明:获取或设置Redis服务器配置参数。

    参数

    操作  (字符串)任一  GET 或  SET   字符串  SET为,水珠图案  GET有关 示例,请参阅  http://redis.io/commands/config-get。   可选字符串(仅用于  SET

    返回值

    关联数组  为  GET,键- >值  布尔  对 SET

    例子
    $redis->config("GET", "*max-*-entries*");
    $redis->config("SET", "dir", "/var/run/redis/dumps/");
    

    dbSize


    说明:返回所选数据库中的键数。

    参数

    没有。

    返回值

    INTEGER:数据库大小,按键数量。

    $count = $redis->dbSize();
    echo "Redis has $count keys
    ";
    

    flushAll


    说明:从所有数据库中删除所有密钥。

    参数

    没有。

    返回值

    布尔:总是  TRUE

    $redis->flushAll();
    

    flushDb


    说明:从当前数据库中删除所有密钥。

    参数

    没有。

    返回值

    布尔:总是  TRUE

    $redis->flushDb();
    

    信息


    说明:获取有关服务器的信息和统计信息

    返回提供有关服务器信息的关联数组。不向INFO传递参数将调用标准的REDIS INFO命令,该命令返回如下信息:

    • redis_version
    • arch_bits
    • uptime_in_seconds
    • uptime_in_days
    • connected_clients
    • connected_slaves
    • used_memory
    • changes_since_last_save
    • bgsave_in_progress
    • last_save_time
    • total_connections_received
    • total_commands_processed
    • 角色

    您可以将各种选项传递给INFO(根据Redis文档),这将修改返回的内容。

    参数

    选项:提供redis选项(例如“COMMANDSTATS”,“CPU”)

    $redis->info(); /* standard redis INFO command */
    $redis->info("COMMANDSTATS"); /* Information on the commands that have been run (>=2.6 only)
    $redis->info("CPU"); /* just CPU information from Redis INFO */
    

    LASTSAVE


    说明:返回上次磁盘保存的时间戳。

    参数

    没有。

    返回值

    INT:时间戳。

    $redis->lastSave();
    

    resetStat


    说明:重置info  方法返回的统计  信息

    这些是重置的计数器:

    • Keyspace点击
    • Keyspace想念
    • 处理的命令数
    • 收到的连接数
    • 已过期的密钥数量
    参数

    没有。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->resetStat();
    

    保存


    说明:将数据集同步保存到磁盘(等待完成)

    参数

    没有。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。如果保存已经运行,该命令将失败并返回  FALSE

    $redis->save();
    

    slaveOf


    说明:更改从站状态

    参数

    无论是主机(字符串)和端口(INT),或没有参数,以停止成为奴隶。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->slaveOf('10.0.1.7', 6379);
    /* ... */
    $redis->slaveOf();
    

    时间


    说明:返回当前的服务器时间。

    参数

    (没有)

    返回值

    如果成功,时间将作为一个关联数组返回,其中元素零为unix时间戳,元素一为微秒。

    例子
    $redis->time();
    

    slowLog


    说明:访问Redis slowLog

    参数

    操作  (字符串):这可以是  GET,  LEN或  RESET 长度  (整数),可选的:如果执行一个  SLOWLOG GET 指令,就可以通过一个可选的长度。

    返回值

    SLOWLOG的返回值取决于执行的操作。SLOWLOG GET:由Redis提供的slowLog条目数组SLOGLOG LEN:整数,slowLog SLOWLOG RESET:Boolean的长度,取决于成功

    例子
    // Get ten slowLog entries
    $redis->slowLog('get', 10);
    // Get the default number of slowLog entries
    
    $redis->slowLog('get');
    // Reset our slowLog
    $redis->slowLog('reset');
    
    // Retrieve slowLog length
    $redis->slowLog('len');
    

    键和字符串

    字符串


    • append  - 向键添加一个值
    • bitCount  - 计算字符串中的设置位数
    • bitOp  - 在字符串之间执行按位操作
    • decr,decrBy  - 减少密钥的值
    • 获取  - 获取密钥的值
    • getBit  - 返回键中存储的字符串值的偏移位值
    • getRange  - 获取存储在键上的字符串的子字符串
    • getSet  - 设置一个键的字符串值并返回其旧值
    • incr,incrBy  - 增加一个键的值
    • incrByFloat  - 按给定的数量增加一个键的浮点值
    • mGet,getMultiple  - 获取所有给定键的值
    • mSet,mSetNX  - 将多个键设置为多个值
    • set  - 设置一个键的字符串值
    • setBit  - 设置或清除键中存储的字符串值的偏移量位
    • setEx,pSetEx  - 设置密钥的值和过期
    • setNx  - 仅当密钥不存在时才设置密钥的值
    • setRange  - 覆盖从指定偏移量开始的键字符串的一部分
    • strLen  - 获取存储在键中的值的长度

    按键


    • 删除,删除  - 删除一个密钥
    • dump  - 返回存储在指定键上的值的序列化版本。
    • 存在  - 确定是否存在密钥
    • 过期,setTimeout,pexpire  - 设置密钥的时间以秒为单位
    • expireAt,pexpireAt  - 将密钥的到期时间设置为UNIX时间戳
    • 键,getKeys  - 查找与给定模式匹配的所有键
    • 扫描  - 扫描密钥空间中的密钥(Redis> = 2.8.0)
    • 迁移  - 将Redis实例中的密钥以原子方式转移到另一个实例
    • 移动  - 将密钥移至另一个数据库
    • 对象  - 检查Redis对象的内部
    • 坚持  - 从密钥中删除到期
    • randomKey  - 从密钥空间返回一个随机密钥
    • 重命名,  重命名键 - 重命名密钥
    • renameNx  - 仅当新密钥不存在时重命名密钥
    • 类型  - 确定存储在键上的类型
    • 排序  - 对列表中的元素进行排序,设置或排序集
    • ttl,pttl  - 让时间为一把钥匙而活
    • 恢复  - 使用提供的序列化值创建一个密钥,以前通过  转储获取

    得到


    说明:获取与指定键相关的值

    参数

    返回值

    字符串  或  布尔值:如果密钥不存在,  FALSE 则返回。否则,返回与该键有关的值。

    例子
    $redis->get('key');
    


    说明:将参数中的字符串值设置为键的值。如果您使用的是Redis> = 2.6.12,则可以按照下面的说明传递扩展选项

    参数

    关键  超时或选项数组  (可选)。如果你传递一个整数,phpredis将重定向到SETEX,并且如果你传递了一个有效值的数组,它将尝试使用Redis> = 2.6.12扩展选项

    返回值

    布尔 TRUE  如果命令成功。

    例子
    // Simple key -> value set
    $redis->set('key', 'value');
    
    // Will redirect, and actually make an SETEX call
    $redis->set('key','value', 10);
    
    // Will set the key, if it doesn't exist, with a ttl of 10 seconds
    $redis->set('key', 'value', Array('nx', 'ex'=>10));
    
    // Will set a key, if it does exist, with a ttl of 1000 miliseconds
    $redis->set('key', 'value', Array('xx', 'px'=>1000));
    
    

    setEx,pSetEx


    说明:将参数中的字符串值设置为键的值,并设置生存时间。PSETEX以毫秒为单位使用TTL。

    参数

    关键 TTL  

    返回值

    布尔 TRUE  如果命令成功。

    例子
    $redis->setEx('key', 3600, 'value'); // sets key → value, with 1h TTL.
    $redis->pSetEx('key', 100, 'value'); // sets key → value, with 0.1 sec TTL.
    

    SETNX


    说明:如果键不存在于数据库中,请将参数中的字符串值设置为键的值。

    参数

    关键 

    返回值

    布尔 TRUE  如果成功,  FALSE 在失败的情况下。

    例子
    $redis->setNx('key', 'value'); /* return TRUE */
    $redis->setNx('key', 'value'); /* return FALSE */
    

    删除,删除


    说明:删除指定的键。

    参数

    一组键,或者一个未定义数量的参数,每一个键:  key1  key2  key3  ...  keyN

    返回值

      键被删除。

    例子
    $redis->set('key1', 'val1');
    $redis->set('key2', 'val2');
    $redis->set('key3', 'val3');
    $redis->set('key4', 'val4');
    
    $redis->delete('key1', 'key2'); /* return 2 */
    $redis->delete(array('key3', 'key4')); /* return 2 */
    

    存在


    说明:验证指定的密钥是否存在。

    参数

    返回值

    BOOL:如果键存在,则返回  TRUE,否则返回  FALSE

    例子
    $redis->set('key', 'value');
    $redis->exists('key'); /*  TRUE */
    $redis->exists('NonExistingKey'); /* FALSE */
    

    incr,incrBy


    说明:将存储在密钥中的数字加1。如果第二个参数被填充,它将被用作增量的整数值。

    参数

    关键 :值将被添加到键(仅适用于incrBy)

    返回值

    INT  是新的价值

    例子
    $redis->incr('key1'); /* key1 didn't exists, set to 0 before the increment */
                          /* and now has the value 1  */
    
    $redis->incr('key1'); /* 2 */
    $redis->incr('key1'); /* 3 */
    $redis->incr('key1'); /* 4 */
    $redis->incrBy('key1', 10); /* 14 */
    

    incrByFloat


    说明:使用浮点精度递增键。

    参数

    密钥 :(浮点)值,该值将被添加到关键

    返回值

    FLOAT  新的价值

    例子
    $redis->incrByFloat('key1', 1.5); /* key1 didn't exist, so it will now be 1.5 */
    
    
    $redis->incrByFloat('key1', 1.5); /* 3 */
    $redis->incrByFloat('key1', -1.5); /* 1.5 */
    $redis->incrByFloat('key1', 2.5); /* 4 */
    

    鹿,decrBy


    说明:将存储在密钥中的数字减1。如果第二个参数被填充,它将被用作递减的整数值。

    参数

    键值 :将被减去键的(仅用于decrBy)

    返回值

    INT  是新的价值

    例子
    $redis->decr('key1'); /* key1 didn't exists, set to 0 before the increment */
                          /* and now has the value -1  */
    
    $redis->decr('key1'); /* -2 */
    $redis->decr('key1'); /* -3 */
    $redis->decrBy('key1', 10); /* -13 */
    

    mGet,getMultiple


    说明:获取所有指定键的值。如果一个或多个键不存在,则数组将包含  FALSE 在键的位置。

    参数

    Array:包含键列表的数组

    返回值

    Array:包含参数中与键有关的值的数组

    例子
    $redis->set('key1', 'value1');
    $redis->set('key2', 'value2');
    $redis->set('key3', 'value3');
    $redis->mGet(array('key1', 'key2', 'key3')); /* array('value1', 'value2', 'value3');
    $redis->mGet(array('key0', 'key1', 'key5')); /* array(`FALSE`, 'value1', `FALSE`);
    

    GETSET


    说明:设置一个值并返回该键上的前一个条目。

    参数

    钥匙:钥匙

    STRING:价值

    返回值

    一个字符串,前一个值位于此键处。

    $redis->set('x', '42');
    $exValue = $redis->getSet('x', 'lol');  // return '42', replaces x by 'lol'
    $newValue = $redis->get('x')'       // return 'lol'
    

    随机key


    说明:返回一个随机密钥。

    参数

    没有。

    返回值

    STRING:Redis中的现有密钥。

    $key = $redis->randomKey();
    $surprise = $redis->get($key);  // who knows what's in there.
    

    移动


    说明:将密钥移至其他数据库。

    参数

    钥匙:钥匙,移动的钥匙。

    INTEGER:dbindex,将密钥移至的数据库编号。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->select(0);  // switch to DB 0
    $redis->set('x', '42'); // write 42 to x
    $redis->move('x', 1);   // move to DB 1
    $redis->select(1);  // switch to DB 1
    $redis->get('x');   // will return 42
    

    重命名,重命名键


    说明:重命名密钥。

    参数

    STRING:srckey,重命名的关键。

    STRING:dstkey,密钥的新名称。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->set('x', '42');
    $redis->rename('x', 'y');
    $redis->get('y');   // → 42
    $redis->get('x');   // → `FALSE`
    

    renameNx


    说明:与重命名相同,但如果目标已存在,则不会替换密钥。这与setNx的行为相同。

    到期,setTimeout,pexpire


    说明:设置项目的到期日期(超时)。pexpire需要以毫秒为单位的TTL。

    参数

    钥匙:钥匙。将消失的关键。

    整数:ttl。密钥剩余的生存时间,以秒为单位。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->set('x', '42');
    $redis->setTimeout('x', 3); // x will disappear in 3 seconds.
    sleep(5);               // wait 5 seconds
    $redis->get('x');       // will return `FALSE`, as 'x' has expired.
    

    expireAt,pexpireAt


    说明:设置项目的到期日期(时间戳)。pexpireAt需要以毫秒为单位的时间戳。

    参数

    钥匙:钥匙。将消失的关键。

    整数:Unix时间戳。钥匙的死亡日期,距离大纪元时间仅几秒钟。

    返回值

    布尔:  TRUE 如果成功,  FALSE 在失败的情况下。

    $redis->set('x', '42');
    $now = time(NULL); // current timestamp
    $redis->expireAt('x', $now + 3);    // x will disappear in 3 seconds.
    sleep(5);               // wait 5 seconds
    $redis->get('x');       // will return `FALSE`, as 'x' has expired.
    

    键,getKeys


    说明:返回与特定模式匹配的键。

    参数

    STRING:模式,使用'*'作为通配符。

    返回值

    STRING数组:匹配特定模式的键。

    $allKeys = $redis->keys('*');   // all keys will match this.
    $keyWithUserPrefix = $redis->keys('user*');
    

    扫描


    说明:扫描密钥的密钥空间

    参数

    LONG(引用):Iterator,初始化为NULL  STRING,可选:与LONG匹配的模式  ,可选:每次迭代计算键值(仅向Redis提供建议)

    返回值

    数组,布尔值:如果没有更多的键,则此函数将返回一组键或FALSE

    $it = NULL; /* Initialize our iterator to NULL */
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY); /* retry when we get no keys back */
    while($arr_keys = $redis->scan($it)) {
        foreach($arr_keys as $str_key) {
            echo "Here is a key: $str_key
    ";
        }
        echo "No more keys to scan!
    ";
    }
    

    目的


    说明:描述一个键指向的对象。

    参数

    要检索的信息(字符串)和密钥(字符串)。信息可以是以下之一:

    • “编码”
    • “引用计数”
    • “空闲时间”
    返回值

    STRING  为“编码”,  LONG  为“refcount”和“空闲时间”,  FALSE 如果密钥不存在。

    $redis->object("encoding", "l"); // → ziplist
    $redis->object("refcount", "l"); // → 1
    $redis->object("idletime", "l"); // → 400 (in seconds, with a precision of 10 seconds).
    

    类型


    说明:返回给定键指向的数据类型。

    参数

    钥匙:钥匙

    返回值

    根据键所指向的数据类型,此方法将返回以下值:string:Redis :: REDIS_STRING set:Redis :: REDIS_SET list:Redis :: REDIS_LIST zset:Redis :: REDIS_ZSET hash:Redis :: REDIS_HASH其他:Redis :: REDIS_NOT_FOUND

    $redis->type('key');
    

    附加


    说明:将指定的字符串追加到存储在指定键中的字符串中。

    参数

    主要 价值

    返回值

    INTEGER:追加后的值的大小

    $redis->set('key', 'value1');
    $redis->append('key', 'value2'); /* 12 */
    $redis->get('key'); /* 'value1value2' */
    

    getRange


    说明:返回一个较大字符串的子字符串

    注意:substr也支持,但在redis中不推荐使用。

    参数

    关键 开始 结束

    返回值

    STRING:子字符串

    $redis->set('key', 'string value');
    $redis->getRange('key', 0, 5); /* 'string' */
    $redis->getRange('key', -5, -1); /* 'value' */
    

    SetRange


    说明:更改较大字符串的子字符串。

    参数

     偏移 

    返回值

    STRING:修改后的字符串长度。

    $redis->set('key', 'Hello world');
    $redis->setRange('key', 6, "redis"); /* returns 11 */
    $redis->get('key'); /* "Hello redis" */
    

    STRLEN


    说明:获取字符串值的长度。

    参数

    返回值

    整数

    $redis->set('key', 'value');
    $redis->strlen('key'); /* 5 */
    

    GETBIT


    说明:从较大的字符串中返回一位

    参数

    关键 抵消

    返回值

    LONG:位值(0或1)

    $redis->set('key', "x7f"); // this is 0111 1111
    $redis->getBit('key', 0); /* 0 */
    $redis->getBit('key', 1); /* 1 */
    

    setBit


    说明:更改一个字符串的单个位。

    参数

     偏移 :bool或int(1或0)

    返回值

    LONG:0或1,它被设置之前的位的值。

    $redis->set('key', "*");    // ord("*") = 42 = 0x2f = "0010 1010"
    $redis->setBit('key', 5, 1); /* returns 0 */
    $redis->setBit('key', 7, 1); /* returns 0 */
    $redis->get('key'); /* chr(0x2f) = "/" = b("0010 1111") */
    

    bitOp


    说明:在多个按键上按位操作。

    参数

    操作:“AND”,“OR”,“NOT”,“XOR”  ret_key:返回键  key1  key2 ...

    返回值

    LONG:目标键中存储的字符串的大小。

    位计数


    说明:计算字符串中的位。

    参数

    返回值

    LONG:输入键后面的值中设置为1的位数。

    分类


    说明:对列表中的元素进行排序,设置或排序集。

    参数

    :键  选项:数组(键=>值,...) - 可选,使用以下键和值:

        'by' => 'some_pattern_*',
        'limit' => array(0, 1),
        'get' => 'some_other_pattern_*' or an array of patterns,
        'sort' => 'asc' or 'desc',
        'alpha' => TRUE,
        'store' => 'external-key'
    
    返回值

    一组数值,或者一个数字,对应于存储的元素数量(如果使用的话)。

    $redis->delete('s');
    $redis->sAdd('s', 5);
    $redis->sAdd('s', 4);
    $redis->sAdd('s', 2);
    $redis->sAdd('s', 1);
    $redis->sAdd('s', 3);
    
    var_dump($redis->sort('s')); // 1,2,3,4,5
    var_dump($redis->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1
    var_dump($redis->sort('s', array('sort' => 'desc', 'store' => 'out'))); // (int)5
    

    ttl,pttl


    说明:以秒(ttl)或毫秒(pttl)为单位返回给定键的剩余时间。

    参数

    钥匙:钥匙

    返回值

    LONG:以秒为单位的时间。如果密钥没有ttl,  -1 将被返回,并且  -2 密钥不存在。

    $redis->ttl('key');
    

    坚持


    说明:从密钥中删除到期计时器。

    参数

    钥匙:钥匙

    返回值

    布尔:  TRUE 如果超时被删除,  FALSE 如果密钥不存在或没有到期计时器。

    $redis->persist('key');
    

    mSet,mSetNx


    说明:在一个原子命令中设置多个键值对。如果所有密钥均已设置,则MSETNX仅返回TRUE(请参阅SETNX)。

    参数

    :数组(键=>值,...)

    返回值

    布尔 TRUE  如果成功,  FALSE 在失败的情况下。

    
    $redis->mSet(array('key0' => 'value0', 'key1' => 'value1'));
    var_dump($redis->get('key0'));
    var_dump($redis->get('key1'));
    
    

    输出:

    string(6) "value0"
    string(6) "value1"
    

    倾倒


    说明:从Redis数据库中转出密钥,其值可以稍后通过RESTORE命令传递给redis。DUMP出来的数据是Redis存储密钥的二进制表示形式。

    参数

      字符串

    返回值

    Redis编码密钥的值,如果密钥不存在,则为FALSE

    例子
    $redis->set('foo', 'bar');
    $val = $redis->dump('foo'); // $val will be the Redis encoded key value
    

    恢复


    说明:从DUMP操作的结果中恢复一个密钥。

    参数

      字符串。密钥名称  ttl  整数。密钥应存活多长时间(如果为零,则不会在密钥上设置过期  值)  字符串(二进制)。Redis编码密钥值(来自DUMP)

    例子
    $redis->set('foo', 'bar');
    $val = $redis->dump('foo');
    $redis->restore('bar', 0, $val); // The key 'bar', will now be equal to the key 'foo'
    

    迁移


    说明:将密钥迁移到其他Redis实例。

    参数

    主机  字符串。目标主机  端口的  整数。要连接的TCP端口。   字符串。迁移的关键。 destination-db整数。目标数据库。 超时  整数。此次转帐的最长时间。 复制  布尔值,可选。我们是否应该将COPY标志发送到redis  替换  布尔值,可选。我们是否应该将REPLACE标志发送给redis

    例子
    $redis->migrate('backup', 6379, 'foo', 0, 3600);
    $redis->migrate('backup', 6379, 'foo', 0, 3600, true, true); /* copy and replace */
    $redis->migrate('backup', 6379, 'foo', 0, 3600, false, true); /* just REPLACE flag */
    

    哈希

    • hDel  - 删除一个或多个散列字段
    • hExists  - 确定是否存在散列字段
    • hGet  - 获取散列字段的值
    • hGetAll  - 获取散列中的所有字段和值
    • hIncrBy  - 将散列字段的整数值增加给定数字
    • hIncrByFloat  - 将哈希字段的float值增加给定量
    • hKeys  - 获取散列中的所有字段
    • hLen  - 获取散列中的字段数
    • hMGet  - 获取所有给定散列字段的值
    • hMSet  - 将多个散列字段设置为多个值
    • hSet  - 设置散列字段的字符串值
    • hSetNx  - 仅当字段不存在时才设置散列字段的值
    • hVals  - 获取散列中的所有值
    • hScan  - 扫描会员的散列键

    置盘


    说明:为存储在键上的散列值添加一个值。

    参数

    key  hashKey  

    返回值

     1 如果值不存在并且已成功添加,0 则该值为LONG,  如果该值已经存在并被替换,  FALSE 则出现错误。

    $redis->delete('h')
    $redis->hSet('h', 'key1', 'hello'); /* 1, 'key1' => 'hello' in the hash at "h" */
    $redis->hGet('h', 'key1'); /* returns "hello" */
    
    $redis->hSet('h', 'key1', 'plop'); /* 0, value was replaced. */
    $redis->hGet('h', 'key1'); /* returns "plop" */
    

    hSetNx


    说明:只有当该字段不在散列中时,才会将值添加到存储在密钥中的散列。

    返回值

    BOOL TRUE  是否设置了字段,  FALSE 如果它已经存在。

    $redis->delete('h')
    $redis->hSetNx('h', 'key1', 'hello'); /* TRUE, 'key1' => 'hello' in the hash at "h" */
    $redis->hSetNx('h', 'key1', 'world'); /* FALSE, 'key1' => 'hello' in the hash at "h". No change since the field wasn't replaced. */
    

    hGet


    说明:从密钥中存储的散列获取值。如果散列表不存在,或者该键不存在,  FALSE 则返回。

    参数

    key  hashKey

    返回值

    STRING  值,如果命令成功执行,则  BOOL FALSE  在失败的情况下

    为hLen


    说明:以项目数量的形式返回散列的长度

    参数

    返回值

    LONG  中的散列项目的数量,  FALSE 如果该键不存在或不是一个哈希值。

    $redis->delete('h')
    $redis->hSet('h', 'key1', 'hello');
    $redis->hSet('h', 'key2', 'plop');
    $redis->hLen('h'); /* returns 2 */
    

    HDEL


    说明:从密钥中存储的散列中删除一个值。如果散列表不存在,或者该键不存在,  FALSE 则返回。

    参数

    key  hashKey1  hashKey2  ...

    返回值

    LONG  删除的键的数量,如果该键不存在,FALSE 则为0,  如果该键不是散列。

    hKeys


    说明:将散列中的键作为字符串数组返回。

    参数

    钥匙:钥匙

    返回值

    一组元素,散列的键。这工作像PHP的array_keys()。

    $redis->delete('h');
    $redis->hSet('h', 'a', 'x');
    $redis->hSet('h', 'b', 'y');
    $redis->hSet('h', 'c', 'z');
    $redis->hSet('h', 'd', 't');
    var_dump($redis->hKeys('h'));
    

    输出:

    array(4) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "b"
      [2]=>
      string(1) "c"
      [3]=>
      string(1) "d"
    }
    

    顺序是随机的,并对应于redis自己的集合结构的内部表示。

    鲸鱼


    说明:以散列值的形式返回字符串数组。

    参数

    钥匙:钥匙

    返回值

    一组元素,哈希的值。这可以像PHP的array_values()一样工作。

    $redis->delete('h');
    $redis->hSet('h', 'a', 'x');
    $redis->hSet('h', 'b', 'y');
    $redis->hSet('h', 'c', 'z');
    $redis->hSet('h', 'd', 't');
    var_dump($redis->hVals('h'));
    

    输出:

    array(4) {
      [0]=>
      string(1) "x"
      [1]=>
      string(1) "y"
      [2]=>
      string(1) "z"
      [3]=>
      string(1) "t"
    }
    

    顺序是随机的,并对应于redis自己的集合结构的内部表示。

    hGetAll


    说明:返回整个散列,作为由字符串索引的字符串数组。

    参数

    钥匙:钥匙

    返回值

    一组元素,散列的内容。

    $redis->delete('h');
    $redis->hSet('h', 'a', 'x');
    $redis->hSet('h', 'b', 'y');
    $redis->hSet('h', 'c', 'z');
    $redis->hSet('h', 'd', 't');
    var_dump($redis->hGetAll('h'));
    

    输出:

    array(4) {
      ["a"]=>
      string(1) "x"
      ["b"]=>
      string(1) "y"
      ["c"]=>
      string(1) "z"
      ["d"]=>
      string(1) "t"
    }
    

    顺序是随机的,并对应于redis自己的集合结构的内部表示。

    hExists


    说明:验证指定的成员是否存在于某个键中。

    参数

    key  memberKey

    返回值

    BOOL:如果该成员存在于散列表中,则返回  TRUE,否则返回  FALSE

    例子
    $redis->hSet('h', 'a', 'x');
    $redis->hExists('h', 'a'); /*  TRUE */
    $redis->hExists('h', 'NonExistingKey'); /* FALSE */
    

    hIncrBy


    说明:按给定数量从散列中增加成员的值。

    参数

    关键 成员 :(整数)值将被添加到成员的值

    返回值

      新价值

    例子
    $redis->delete('h');
    $redis->hIncrBy('h', 'x', 2); /* returns 2: h[x] = 2 now. */
    $redis->hIncrBy('h', 'x', 1); /* h[x] ← 2 + 1. Returns 3 */
    

    hIncrByFloat


    说明:通过提供的浮点值增加散列成员的值

    参数

    关键 成员 :(float)值将被添加到成员的值

    返回值

    FLOAT  新的价值

    例子
    $redis->delete('h');
    $redis->hIncrByFloat('h','x', 1.5); /* returns 1.5: h[x] = 1.5 now */
    $redis->hIncrByFloat('h', 'x', 1.5); /* returns 3.0: h[x] = 3.0 now */
    $redis->hIncrByFloat('h', 'x', -3.0); /* returns 0.0: h[x] = 0.0 now */
    

    hMSet


    说明:填充整个散列。使用标准转换将非字符串值转换为字符串  (string) 。NULL值存储为空字符串。

    参数

    关键 成员:键→值数组

    返回值

    BOOL

    例子
    $redis->delete('user:1');
    $redis->hMSet('user:1', array('name' => 'Joe', 'salary' => 2000));
    $redis->hIncrBy('user:1', 'salary', 100); // Joe earns 100 more now.
    

    hMGet


    说明:检索与散列中指定字段关联的值。

    参数

    key  memberKeys  Array

    返回值

    Array  一个元素数组,散列中指定字段的值,散列键作为数组键。

    例子
    $redis->delete('h');
    $redis->hSet('h', 'field1', 'value1');
    $redis->hSet('h', 'field2', 'value2');
    $redis->hMGet('h', array('field1', 'field2')); /* returns array('field1' => 'value1', 'field2' => 'value2') */
    

    HSCAN


    说明:使用可选模式和计数扫描成员的HASH值

    参数

    key:字符串  迭代器:Long(引用)  模式:与count匹配的可选模式  :一次返回多少个键(仅对Redis进行消解)

    返回值

    数组  与我们的模式相匹配的成员数组

    例子
    $it = NULL;
    /* Don't ever return an empty array until we're done iterating */
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
    while($arr_keys = $redis->hScan('hash', $it)) {
        foreach($arr_keys as $str_field => $str_value) {
            echo "$str_field => $str_value
    "; /* Print the hash member and value */
        }
    }
    

    清单

    • blPop,brPop  - 删除并获取列表中的第一个/最后一个元素
    • bRPopLPush  - 从列表中弹出一个值,将其推送到另一个列表并返回
    • lIndex,lGet  - 通过索引从列表中获取元素
    • lInsert  - 在列表中的另一个元素之前或之后插入一个元素
    • lLen,lSize  - 获取列表的长度/大小
    • lPop  - 删除并获取列表中的第一个元素
    • l推送  - 将一个或多个值添加到列表中
    • lPushx  - 只有当列表存在时,才会将值列入列表
    • lRange,lGetRange  - 从列表中获取一系列元素
    • lRem,lRemove  - 从列表中删除元素
    • lSet  - 通过索引设置列表中元素的值
    • lTrim,listTrim  - 将列表修剪到指定的范围
    • rPop  - 删除并获取列表中的最后一个元素
    • rPopLPush  - 删除列表中的最后一个元素,将其附加到另一个列表并返回它(redis> = 1.1)
    • rPush  - 将一个或多个值附加到列表中
    • rPushX  - 仅当列表存在时,才会将值附加到列表中

    blPop,brPop


    说明:是一个阻塞lPop(rPop)原语。如果至少有一个列表包含至少一个元素,则该元素将从列表头部弹出并返回给调用者。如果所有通过参数传递的键标识的列表都是空的,blPop将在指定的超时期间阻塞,直到元素被推送到其中一个列表。这个元素将被弹出。

    参数

    ARRAY  包含列表键的数组  INTEGER  Timeout或  STRING  Key1  STRING  Key2  STRING  Key3 ...  STRING  Keyn INTEGER  Timeout

    返回值

    ARRAY  数组('listName','element')

    /* Non blocking feature */
    $redis->lPush('key1', 'A');
    $redis->delete('key2');
    
    $redis->blPop('key1', 'key2', 10); /* array('key1', 'A') */
    /* OR */
    $redis->blPop(array('key1', 'key2'), 10); /* array('key1', 'A') */
    
    $redis->brPop('key1', 'key2', 10); /* array('key1', 'A') */
    /* OR */
    $redis->brPop(array('key1', 'key2'), 10); /* array('key1', 'A') */
    
    /* Blocking feature */
    
    /* process 1 */
    $redis->delete('key1');
    $redis->blPop('key1', 10);
    /* blocking for 10 seconds */
    
    /* process 2 */
    $redis->lPush('key1', 'A');
    
    /* process 1 */
    /* array('key1', 'A') is returned*/
    

    bRPopLPush


    说明:阻塞版本  rPopLPush,在第三个参数中具有整数超时。

    参数

    密钥:srckey  密钥:dstkey  :超时

    返回值

    STRING  成功时移动的元素,  FALSE 以防超时。

    lIndex,lGet


    说明:返回存储在指定键上的列表的指定元素。

    0第一个元素,1第二个... -1最后一个元素,-2倒数第二个...

    FALSE 在索引不正确的情况下返回  或者不指向列表的键。

    参数

    关键 指标

    返回值

     如果键标识非字符串数据类型,或者没有值与列表中的此索引对应,则将此索引中的   元素  字符串布尔化 FALSEKey

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
    $redis->lGet('key1', 0); /* 'A' */
    $redis->lGet('key1', -1); /* 'C' */
    $redis->lGet('key1', 10); /* `FALSE` */
    

    /

    lInsert


    说明:在枢轴值之前或之后在列表中插入值。

    参数选项指定插入的位置(之前或之后)。如果列表不存在,或者数据透视表不存在,则不插入该值。

    参数

    关键 位置  Redis :: BEFORE | Redis :: AFTER  枢轴 

    返回值

    列表中元素的数量,如果数据透视表不存在则为-1。

    $redis->delete('key1');
    $redis->lInsert('key1', Redis::AFTER, 'A', 'X'); /* 0 */
    
    $redis->lPush('key1', 'A');
    $redis->lPush('key1', 'B');
    $redis->lPush('key1', 'C');
    
    $redis->lInsert('key1', Redis::BEFORE, 'C', 'X'); /* 4 */
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C') */
    
    $redis->lInsert('key1', Redis::AFTER, 'C', 'Y'); /* 5 */
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C', 'Y') */
    
    $redis->lInsert('key1', Redis::AFTER, 'W', 'value'); /* -1 */
    

    LPOP


    说明:返回并删除列表的第一个元素。

    参数

    返回值

    STRING  命令执行成功  BOOL FALSE  出现故障(空列表)

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
    $redis->lPop('key1'); /* key1 => [ 'B', 'C' ] */
    

    LPUSH


    说明:将字符串值添加到列表的头部(左侧)。如果密钥不存在,则创建列表。如果密钥存在并且不是列表,  FALSE 则返回。

    参数

    键值   字符串,键入的

    返回值

    LONG  成功时列表的新长度,  FALSE 以防失败。

    例子
    $redis->delete('key1');
    $redis->lPush('key1', 'C'); // returns 1
    $redis->lPush('key1', 'B'); // returns 2
    $redis->lPush('key1', 'A'); // returns 3
    /* key1 now points to the following list: [ 'A', 'B', 'C' ] */
    

    lPushx


    说明:如果列表存在,则将字符串值添加到列表头(左侧)。

    参数

    键值   字符串,键入的

    返回值

    LONG  成功时列表的新长度,  FALSE 以防失败。

    例子
    $redis->delete('key1');
    $redis->lPushx('key1', 'A'); // returns 0
    $redis->lPush('key1', 'A'); // returns 1
    $redis->lPushx('key1', 'B'); // returns 2
    $redis->lPushx('key1', 'C'); // returns 3
    /* key1 now points to the following list: [ 'A', 'B', 'C' ] */
    

    lRange,lGetRange


    说明:返回存储在范围[start,end]中指定键处的列表的指定元素。开始和结束被解释为索引:0第一个元素,1第二个... -1最后一个元素,-2倒数第二个...

    参数

    关键 开始 结束

    返回值

     包含指定范围内的值的数组

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C');
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
    

    lRem,lRemove


    说明count 从列表中删除值元素的第一次出现  如果count为零,则删除所有匹配的元素。如果计数是负数,元素将从尾部移到头部。

    注意:参数顺序与Redis文档中的不同。出于兼容性原因保留了这种差异。

    参数

    关键  计数

    返回值

      元素的数量删除  BOOL FALSE  如果键标识的值不是一个列表。

    $redis->lPush('key1', 'A');
    $redis->lPush('key1', 'B');
    $redis->lPush('key1', 'C');
    $redis->lPush('key1', 'A');
    $redis->lPush('key1', 'A');
    
    $redis->lRange('key1', 0, -1); /* array('A', 'A', 'C', 'B', 'A') */
    $redis->lRem('key1', 'A', 2); /* 2 */
    $redis->lRange('key1', 0, -1); /* array('C', 'B', 'A') */
    

    LSET


    说明:使用新值在索引处设置列表。

    参数

    关键 指标 

    返回值

    BOOL TRUE  是否设置了新值。 FALSE 如果索引超出范围,或者由键标识的数据类型不是列表。

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
    $redis->lGet('key1', 0); /* 'A' */
    $redis->lSet('key1', 0, 'X');
    $redis->lGet('key1', 0); /* 'X' */
    

    lTrim,listTrim


    说明:修剪现有列表,使其仅包含指定范围的元素。

    参数

    按键 启动 停止

    返回值

      如果密钥标识非列表值,则 返回  Array BoolFALSE

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C');
    $redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
    $redis->lTrim('key1', 0, 1);
    $redis->lRange('key1', 0, -1); /* array('A', 'B') */
    

    RPOP


    说明:返回并删除列表的最后一个元素。

    参数

    返回值

    STRING  命令执行成功  BOOL FALSE  出现故障(空列表)

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
    $redis->rPop('key1'); /* key1 => [ 'A', 'B' ] */
    

    rPopLPush


    说明:从列表的尾部弹出一个值,并将其推到另一个列表的前面。同样返回这个值。(redis> = 1.1)

    参数

    密钥:srckey  密钥:dstkey

    返回值

    STRING  成功时移动的元素,  FALSE 以防失败。

    $redis->delete('x', 'y');
    
    $redis->lPush('x', 'abc');
    $redis->lPush('x', 'def');
    $redis->lPush('y', '123');
    $redis->lPush('y', '456');
    
    // move the last of x to the front of y.
    var_dump($redis->rPopLPush('x', 'y'));
    var_dump($redis->lRange('x', 0, -1));
    var_dump($redis->lRange('y', 0, -1));
    
    

    输出:

    string(3) "abc"
    array(1) {
      [0]=>
      string(3) "def"
    }
    array(3) {
      [0]=>
      string(3) "abc"
      [1]=>
      string(3) "456"
      [2]=>
      string(3) "123"
    }
    

    RPUSH


    说明:将字符串值添加到列表的尾部(右侧)。如果密钥不存在,则创建列表。如果密钥存在并且不是列表,  FALSE 则返回。

    参数

    键值   字符串,键入的

    返回值

    LONG  成功时列表的新长度,  FALSE 以防失败。

    例子
    $redis->delete('key1');
    $redis->rPush('key1', 'A'); // returns 1
    $redis->rPush('key1', 'B'); // returns 2
    $redis->rPush('key1', 'C'); // returns 3
    /* key1 now points to the following list: [ 'A', 'B', 'C' ] */
    

    rPushX


    说明:如果ist存在,则将字符串值添加到列表的尾部(右侧)。 FALSE 在失败的情况下。

    参数

    键值   字符串,键入的

    返回值

    LONG  成功时列表的新长度,  FALSE 以防失败。

    例子
    $redis->delete('key1');
    $redis->rPushX('key1', 'A'); // returns 0
    $redis->rPush('key1', 'A'); // returns 1
    $redis->rPushX('key1', 'B'); // returns 2
    $redis->rPushX('key1', 'C'); // returns 3
    /* key1 now points to the following list: [ 'A', 'B', 'C' ] */
    

    lLen,lSize


    说明:返回由Key标识的列表大小。

    如果列表不存在或为空,则该命令返回0.如果由Key标识的数据类型不是列表,则该命令返回FALSE

    参数

    返回值

    LONG  由Key标识的列表大小存在。 BOOL FALSE  如果由Key标识的数据类型不是列表

    $redis->rPush('key1', 'A');
    $redis->rPush('key1', 'B');
    $redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
    $redis->lSize('key1');/* 3 */
    $redis->rPop('key1');
    $redis->lSize('key1');/* 2 */
    

    • sAdd  - 将一个或多个成员添加到一个集合
    • sCard,sSize  - 获取集合中成员的数量
    • sDiff  - 减去多个集合
    • sDiffStore  - 减去多个集合并将结果集存储在一个键中
    • sInter  - 相交多组
    • sInterStore  - 交集多个集合并将结果集存储在一个密钥中
    • sIsMember,sContains  - 确定给定值是否为集合的成员
    • sMembers,sGetMembers  - 获取集合中的所有成员
    • sMove  - 将成员从一组移动到另一组
    • sPop  - 从集合中移除并返回一个随机成员
    • sRandMember  - 从一个集合中获取一个或多个随机成员
    • sRem,sRemove  - 从一个集合中删除一个或多个成员
    • sUnion  - 添加多个集合
    • sUnionStore  - 添加多个集合并将结果集存储在一个密钥中
    • sScan  - 扫描一组成员

    萨德


    说明:为存储在键上的设定值添加一个值。如果此值已在集合中,  FALSE 则返回。

    参数

    关键 

    返回值

    LONG  添加到集合中的元素的数量。

    $redis->sAdd('key1' , 'member1'); /* 1, 'key1' => {'member1'} */
    $redis->sAdd('key1' , 'member2', 'member3'); /* 2, 'key1' => {'member1', 'member2', 'member3'}*/
    $redis->sAdd('key1' , 'member2'); /* 0, 'key1' => {'member1', 'member2', 'member3'}*/
    

    sCard,sSize


    说明:返回由键标识的集合的基数。

    参数

    返回值

    LONG  由key标识的集合的基数,如果集合不存在,则为0。

    $redis->sAdd('key1' , 'member1');
    $redis->sAdd('key1' , 'member2');
    $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
    $redis->sCard('key1'); /* 3 */
    $redis->sCard('keyX'); /* 0 */
    

    那么sdiff


    说明:执行N组之间的差异并返回它。

    参数

    密钥密钥1,密钥2,...,密钥N:与redis中的组相对应的任意数量的密钥。

    返回值

    字符串数组:第一组的差别将是所有其他组的差异。

    $redis->delete('s0', 's1', 's2');
    
    $redis->sAdd('s0', '1');
    $redis->sAdd('s0', '2');
    $redis->sAdd('s0', '3');
    $redis->sAdd('s0', '4');
    
    $redis->sAdd('s1', '1');
    $redis->sAdd('s2', '3');
    
    var_dump($redis->sDiff('s0', 's1', 's2'));
    

    返回值:s1中既不在s1也不在s2中的所有元素。

    array(2) {
      [0]=>
      string(1) "4"
      [1]=>
      string(1) "2"
    }
    

    sDiffStore


    说明:执行与sDiff相同的操作,但将结果存储在第一个键中

    参数

    :dstkey,存储diff的键。

    密钥密钥1,密钥2,...,密钥N:与redis中的组相对应的任意数量的密钥

    返回值

    INTEGER:结果集的基数,或者  FALSE 丢失键的情况。

    $redis->delete('s0', 's1', 's2');
    
    $redis->sAdd('s0', '1');
    $redis->sAdd('s0', '2');
    $redis->sAdd('s0', '3');
    $redis->sAdd('s0', '4');
    
    $redis->sAdd('s1', '1');
    $redis->sAdd('s2', '3');
    
    var_dump($redis->sDiffStore('dst', 's0', 's1', 's2'));
    var_dump($redis->sMembers('dst'));
    

    返回值:s1中既不在s1也不在s2中的元素数。

    int(2)
    array(2) {
      [0]=>
      string(1) "4"
      [1]=>
      string(1) "2"
    }
    

    泉华


    说明:返回由指定键保存的所有集合的交集所产生的集合的成员。

    如果只指定了一个键,则该命令将生成该组的成员。如果其中一个键丢失,  FALSE 则返回。

    参数

    key1,key2,keyN:标识我们将应用交集的不同集合的键。

    返回值

    数组,包含这些键之间的交集结果。如果不同集合的交集为空,则返回值将为空数组。

    例子
    $redis->sAdd('key1', 'val1');
    $redis->sAdd('key1', 'val2');
    $redis->sAdd('key1', 'val3');
    $redis->sAdd('key1', 'val4');
    
    $redis->sAdd('key2', 'val3');
    $redis->sAdd('key2', 'val4');
    
    $redis->sAdd('key3', 'val3');
    $redis->sAdd('key3', 'val4');
    
    var_dump($redis->sInter('key1', 'key2', 'key3'));
    

    输出:

    array(2) {
      [0]=>
      string(4) "val4"
      [1]=>
      string(4) "val3"
    }
    

    sInterStore


    说明:执行sInter命令并将结果存储在新的集合中。

    参数

    :dstkey,存储diff的键。

    密钥密钥1,密钥2 ...密钥N。key1..keyN与sInter相交。

    返回值

    INTEGER:结果集的基数,或者  FALSE 丢失键的情况。

    $redis->sAdd('key1', 'val1');
    $redis->sAdd('key1', 'val2');
    $redis->sAdd('key1', 'val3');
    $redis->sAdd('key1', 'val4');
    
    $redis->sAdd('key2', 'val3');
    $redis->sAdd('key2', 'val4');
    
    $redis->sAdd('key3', 'val3');
    $redis->sAdd('key3', 'val4');
    
    var_dump($redis->sInterStore('output', 'key1', 'key2', 'key3'));
    var_dump($redis->sMembers('output'));
    

    输出:

    int(2)
    
    array(2) {
      [0]=>
      string(4) "val4"
      [1]=>
      string(4) "val3"
    }
    

    sIsMember,sContains


    说明:检查是否  value 存储在密钥中的组的成员  key

    参数

    关键 

    返回值

    BOOL TRUE  如果  value 是密钥集中的成员  key,  FALSE 否则。

    $redis->sAdd('key1' , 'member1');
    $redis->sAdd('key1' , 'member2');
    $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
    
    $redis->sIsMember('key1', 'member1'); /* TRUE */
    $redis->sIsMember('key1', 'memberX'); /* FALSE */
    

    sMembers,sGetMembers


    说明:返回一个集合的内容。

    参数

    钥匙:钥匙

    返回值

    一组元素,集合的内容。

    $redis->delete('s');
    $redis->sAdd('s', 'a');
    $redis->sAdd('s', 'b');
    $redis->sAdd('s', 'a');
    $redis->sAdd('s', 'c');
    var_dump($redis->sMembers('s'));
    

    输出:

    array(3) {
      [0]=>
      string(1) "c"
      [1]=>
      string(1) "a"
      [2]=>
      string(1) "b"
    }
    

    顺序是随机的,并对应于redis自己的集合结构的内部表示。

    SMOVE


    说明:将指定成员从srcKey中的集合移至dstKey处的集合。

    参数

    srcKey  dstKey  成员

    返回值

    BOOL  如果操作成功,则返回  TRUE如果srcKey和/或dstKey不存在,并且/或者该成员在srcKey中不存在,  FALSE 则返回。

    $redis->sAdd('key1' , 'member11');
    $redis->sAdd('key1' , 'member12');
    $redis->sAdd('key1' , 'member13'); /* 'key1' => {'member11', 'member12', 'member13'}*/
    $redis->sAdd('key2' , 'member21');
    $redis->sAdd('key2' , 'member22'); /* 'key2' => {'member21', 'member22'}*/
    $redis->sMove('key1', 'key2', 'member13'); /* 'key1' =>  {'member11', 'member12'} */
                        /* 'key2' =>  {'member21', 'member22', 'member13'} */
    
    

    SPOP


    说明:从Key中的设置值中移除并返回一个随机元素。

    参数

    返回值

    字符串  “弹出”值   如果由键标识的设置为空或不存在,则为Bool FALSE

    $redis->sAdd('key1' , 'member1');
    $redis->sAdd('key1' , 'member2');
    $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member3', 'member1', 'member2'}*/
    $redis->sPop('key1'); /* 'member1', 'key1' => {'member3', 'member2'} */
    $redis->sPop('key1'); /* 'member3', 'key1' => {'member2'} */
    

    sRandMember


    说明:从Key中的设置值返回一个随机元素,而不删除它。

    参数

       (整数,可选)

    返回值

    如果未提供计数, 则将返回该集合中的随机  字符串值。如果提供计数,则将返回该组中的值数组。阅读关于在这里使用计数的不同方法:  SRANDMEMBER   如果由键标识的集合为空或不存在,则为Bool FALSE

    $redis->sAdd('key1' , 'member1');
    $redis->sAdd('key1' , 'member2');
    $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member3', 'member1', 'member2'}*/
    
    // No count
    $redis->sRandMember('key1'); /* 'member1', 'key1' => {'member3', 'member1', 'member2'} */
    $redis->sRandMember('key1'); /* 'member3', 'key1' => {'member3', 'member1', 'member2'} */
    
    // With a count
    $redis->sRandMember('key1', 3); // Will return an array with all members from the set
    $redis->sRandMember('key1', 2); // Will an array with 2 members of the set
    $redis->sRandMember('key1', -100); // Will return an array of 100 elements, picked from our set (with dups)
    $redis->sRandMember('empty-set', 100); // Will return an empty array
    $redis->sRandMember('not-a-set', 100); // Will return FALSE
    

    sRem,sRemove


    说明:从存储在键上的设定值中删除指定的成员。

    参数

    关键 成员

    返回值

    LONG  从集合中删除的元素的数量。

    $redis->sAdd('key1' , 'member1');
    $redis->sAdd('key1' , 'member2');
    $redis->sAdd('key1' , 'member3'); /* 'key1' => {'member1', 'member2', 'member3'}*/
    $redis->sRem('key1', 'member2', 'member3'); /*return 2. 'key1' => {'member1'} */
    

    sUnion


    说明:执行N组之间的联合并返回它。

    参数

    密钥密钥1,密钥2,...,密钥N:与redis中的组相对应的任意数量的密钥。

    返回值

    字符串数组:所有这些集合的联合。

    $redis->delete('s0', 's1', 's2');
    
    $redis->sAdd('s0', '1');
    $redis->sAdd('s0', '2');
    $redis->sAdd('s1', '3');
    $redis->sAdd('s1', '1');
    $redis->sAdd('s2', '3');
    $redis->sAdd('s2', '4');
    
    var_dump($redis->sUnion('s0', 's1', 's2'));
    

    返回值:在s0或s1或s2中的所有元素。

    array(4) {
      [0]=>
      string(1) "3"
      [1]=>
      string(1) "4"
      [2]=>
      string(1) "1"
      [3]=>
      string(1) "2"
    }
    

    sUnionStore


    说明:执行与sUnion相同的操作,但将结果存储在第一个键中

    参数

    :dstkey,存储diff的键。

    密钥密钥1,密钥2,...,密钥N:与redis中的组相对应的任意数量的密钥。

    返回值

    INTEGER:结果集的基数,或者  FALSE 丢失键的情况。

    $redis->delete('s0', 's1', 's2');
    
    $redis->sAdd('s0', '1');
    $redis->sAdd('s0', '2');
    $redis->sAdd('s1', '3');
    $redis->sAdd('s1', '1');
    $redis->sAdd('s2', '3');
    $redis->sAdd('s2', '4');
    
    var_dump($redis->sUnionStore('dst', 's0', 's1', 's2'));
    var_dump($redis->sMembers('dst'));
    

    返回值:在s0或s1或s2中的元素数量。

    int(4)
    array(4) {
      [0]=>
      string(1) "3"
      [1]=>
      string(1) "4"
      [2]=>
      string(1) "1"
      [3]=>
      string(1) "2"
    }
    

    SSCAN


    说明:扫描成员的集合

    参数

    Key:搜索迭代器的集合  :当我们去时,对迭代器的LONG(引用)  pattern:String,与count匹配的可选模式:一次返回多少个成员(Redis可能返回不同的数量)

    返回值

    数组,布尔:当迭代完成后 PHPRedis将返回一个键数组或者FALSE

    $it = NULL;
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY); /* don't return empty results until we're done */
    while($arr_mems = $redis->sScan('set', $it, "*pattern*")) {
        foreach($arr_mems as $str_mem) {
            echo "Member: $str_mem
    ";
        }
    }
    
    $it = NULL;
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY); /* return after each iteration, even if empty */
    while(($arr_mems = $redis->sScan('set', $it, "*pattern*"))!==FALSE) {
        if(count($arr_mems) > 0) {
            foreach($arr_mems as $str_mem) {
                echo "Member found: $str_mem
    ";
            }
        } else {
            echo "No members in this iteration, iterator value: $it
    ";
        }
    }
    

    排序集

    • zAdd  - 将一个或多个成员添加到已排序的集合,或者如果它已经存在,则更新其分数
    • zCard,zSize  - 获取排序集中成员的数量
    • zCount  - 计算排序集中的成员,其中得分在给定值内
    • zIncrBy  - 增加排序集中成员的分数
    • zInter  - 交集多个有序集合并将结果的有序集合存储在新密钥中
    • zRange  - 按索引返回有序集合中的一系列成员
    • zRangeByScore,zRevRangeByScore  - 按分数返回排序集中的一系列成员
    • zRangeByLex  - 从共享相同分数的成员中返回一个文档范围
    • zRank,zRevRank  - 确定排序集中成员的索引
    • zRem,zDelete  - 从有序集合中删除一个或多个成员
    • zRemRangeByRank,zDeleteRangeByRank  - 删除给定索引内有序集合中的所有成员
    • zRemRangeByScore,zDeleteRangeByScore  - 删除给定分数中排序集中的所有成员
    • zRevRange  - 按索引返回已排序集合中的一系列成员,分数从高到低排序
    • zScore  - 获得与已排序集中给定成员关联的分数
    • zUnion  - 添加多个有序集合并将结果排序后的集合存储在新密钥中
    • zScan  - 为成员扫描一个有序集合

    zAdd


    说明:将一个或多个成员添加到已排序的集合或更新其分数(如果它已存在)

    参数

    关键 分数  :双重  :字符串

    返回值

      1,如果添加元素。否则为0。

    $redis->zAdd('key', 1, 'val1');
    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 5, 'val5');
    $redis->zRange('key', 0, -1); // array(val0, val1, val5)
    

    zCard,zSize


    说明:返回有序集合的基数。

    参数

    返回值

    ,集合的基数

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zSize('key'); /* 3 */
    

    zCount


    说明:返回 存储在指定键处的已排序集合中元素的  数量,其中的分数在[start,end]范围内。 在范围之前添加括号  start 或  end将其从范围中排除。+ inf和-inf也是有效的限制。

    参数

     开始:字符串  结束:字符串

    返回值

      对应的zRangeByScore的大小。

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zCount('key', 0, 3); /* 2, corresponding to array('val0', 'val2') */
    

    zIncrBy


    说明:按给定量增加排序集中成员的分数。

    参数

    密钥 :(双)值,该值将被添加到所述成员的得分  构件

    返回值

    双重  新的价值

    例子
    $redis->delete('key');
    $redis->zIncrBy('key', 2.5, 'member1'); /* key or member1 didn't exist, so member1's score is to 0 before the increment */
                          /* and now has the value 2.5  */
    $redis->zIncrBy('key', 1, 'member1'); /* 3.5 */
    

    zInter


    说明:创建第二个参数中给出的有序集合的交集。联合的结果将存储在由第一个参数定义的有序集合中。

    第三个选项参数定义  weights 为应用于输入中的排序集。在这种情况下,weights 在应用聚合之前,  将乘以排序集合中每个元素的得分。第四个参数定义了  AGGREGATE指定工会结果如何汇总的选项。

    参数

    keyOutput  arrayZSetKeys  数组 aggregateFunction  “SUM”,“MIN”或“MAX”:定义在zInter期间在重复条目上使用的行为。

    返回值

    LONG  新排序集中值的数量。

    $redis->delete('k1');
    $redis->delete('k2');
    $redis->delete('k3');
    
    $redis->delete('ko1');
    $redis->delete('ko2');
    $redis->delete('ko3');
    $redis->delete('ko4');
    
    $redis->zAdd('k1', 0, 'val0');
    $redis->zAdd('k1', 1, 'val1');
    $redis->zAdd('k1', 3, 'val3');
    
    $redis->zAdd('k2', 2, 'val1');
    $redis->zAdd('k2', 3, 'val3');
    
    $redis->zInter('ko1', array('k1', 'k2'));               /* 2, 'ko1' => array('val1', 'val3') */
    $redis->zInter('ko2', array('k1', 'k2'), array(1, 1));  /* 2, 'ko2' => array('val1', 'val3') */
    
    /* Weighted zInter */
    $redis->zInter('ko3', array('k1', 'k2'), array(1, 5), 'min'); /* 2, 'ko3' => array('val1', 'val3') */
    $redis->zInter('ko4', array('k1', 'k2'), array(1, 5), 'max'); /* 2, 'ko4' => array('val3', 'val1') */
    

    zRange


    说明:返回存储在指定键上的有序集合中的一系列元素,其值在[start,end]范围内。

    开始和停止被解释为从零开始的索引:0第一个元素,1第二个... -1最后一个元素,-2倒数第二个...

    参数

     开始:长  结束:长  withscores:布尔=假

    返回值

     包含指定范围内的值的数组

    $redis->zAdd('key1', 0, 'val0');
    $redis->zAdd('key1', 2, 'val2');
    $redis->zAdd('key1', 10, 'val10');
    $redis->zRange('key1', 0, -1); /* array('val0', 'val2', 'val10') */
    
    // with scores
    $redis->zRange('key1', 0, -1, true); /* array('val0' => 0, 'val2' => 2, 'val10' => 10) */
    

    zRangeByScore,zRevRangeByScore


    说明:返回存储在指定键处的已排序集合的元素,其分数在[start,end]范围内。 在范围之前添加括号  start 或  end将其从范围中排除。+ inf和-inf也是有效的限制。 参数start 和  end参数交换时,zRevRangeByScore以相反的顺序返回相同的项目  

    参数

     开始:字符串  结束:字符串  选项:数组

    有两个选项可用:  withscores => TRUE,和 limit => array($offset, $count)

    返回值

     包含指定范围内的值的数组

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zRangeByScore('key', 0, 3); /* array('val0', 'val2') */
    $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE); /* array('val0' => 0, 'val2' => 2) */
    $redis->zRangeByScore('key', 0, 3, array('limit' => array(1, 1)); /* array('val2') */
    $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE, 'limit' => array(1, 1)); /* array('val2' => 2) */
    

    zRangeByLex


    说明:假定成员具有相同的分数,则返回已排序集合中成员的文字范围。最小值和最大值需要以'('(独占)','''(包括)或者正好是' - '(负值inf)或者'+'(正值inf)开始。与三个    五个参数或将返回FALSE。

    参数

    :您希望运行的ZSET  分钟:您希望获得的最小字母数字值  max:您希望偏移的最大字母数字值  :可选参数,如果您希望从第一个元素以外的地方开始。limit:可选参数,如果你想限制返回元素的数量。

    返回值

     包含指定范围中的值的数组

    foreach(Array('a','b','c','d','e','f','g') as $c)
        $redis->zAdd('key',0,$c);
    
    $redis->zRangeByLex('key','-','[c') /* Array('a','b','c'); */
    $redis->zRangeByLex('key','-','(c') /* Array('a','b') */
    $redis->zRangeByLex('key','-','[c',1,2) /* Array('b','c') */
    

    zRank,zRevRank


    说明:返回指定排序集中给定成员的排名,对于分数最低的项目,从0开始。zRevRank从0开始的与该项目  最大的  比分。

    参数

    关键 成员

    返回值

    很长,项目的分数。

    $redis->delete('z');
    $redis->zAdd('key', 1, 'one');
    $redis->zAdd('key', 2, 'two');
    $redis->zRank('key', 'one'); /* 0 */
    $redis->zRank('key', 'two'); /* 1 */
    $redis->zRevRank('key', 'one'); /* 1 */
    $redis->zRevRank('key', 'two'); /* 0 */
    

    zRem,zDelete


    说明:从有序集合中删除指定的成员。

    参数

    关键 成员

    返回值

    LONG  1成功,0失败。

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zDelete('key', 'val2');
    $redis->zRange('key', 0, -1); /* array('val0', 'val10') */
    

    zRemRangeByRank,zDeleteRangeByRank


    说明:删除在[start,end]范围内具有等级的指定键中存储的有序集合的元素。

    参数

    按键 开始:LONG  结束:LONG

    返回值

    LONG  从排序集中删除的值的数量

    $redis->zAdd('key', 1, 'one');
    $redis->zAdd('key', 2, 'two');
    $redis->zAdd('key', 3, 'three');
    $redis->zRemRangeByRank('key', 0, 1); /* 2 */
    $redis->zRange('key', 0, -1, array('withscores' => TRUE)); /* array('three' => 3) */
    

    zRemRangeByScore,zDeleteRangeByScore


    说明:删除在[start,end]范围内得分存储在指定键上的有序集合的元素。

    参数

    key  start:double或“+ inf”或“-inf”字符串  结尾:double或“+ inf”或“-inf”字符串

    返回值

    LONG  从排序集中删除的值的数量

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zRemRangeByScore('key', 0, 3); /* 2 */
    

    zRevRange


    说明:以相反顺序返回存储在指定键范围[start,end]中的有序集合的元素。开始和停止被解释为从零开始的索引:0第一个元素,1第二个... -1最后一个元素,-2倒数第二个...

    参数

     开始:长  结束:长  withscores:布尔=假

    返回值

     包含指定范围内的值的数组

    $redis->zAdd('key', 0, 'val0');
    $redis->zAdd('key', 2, 'val2');
    $redis->zAdd('key', 10, 'val10');
    $redis->zRevRange('key', 0, -1); /* array('val10', 'val2', 'val0') */
    
    // with scores
    $redis->zRevRange('key', 0, -1, true); /* array('val10' => 10, 'val2' => 2, 'val0' => 0) */
    

    zScore


    说明:返回指定排序集中给定成员的分数。

    参数

    关键 成员

    返回值

    $redis->zAdd('key', 2.5, 'val2');
    $redis->zScore('key', 'val2'); /* 2.5 */
    

    zUnion


    说明:创建第二个参数中给出的有序集合的联合。联合的结果将存储在由第一个参数定义的有序集合中。

    第三个选项参数定义  weights 为应用于输入中的排序集。在这种情况下,weights 在应用聚合之前,  将乘以排序集合中每个元素的得分。第四个参数定义了  AGGREGATE指定工会结果如何汇总的选项。

    参数

    keyOutput  arrayZSetKeys  arrayWeights  aggregateFunction  “SUM”,“MIN”或“MAX”:定义zUnion期间在重复条目上使用的行为。

    返回值

    LONG  新排序集中值的数量。

    $redis->delete('k1');
    $redis->delete('k2');
    $redis->delete('k3');
    $redis->delete('ko1');
    $redis->delete('ko2');
    $redis->delete('ko3');
    
    $redis->zAdd('k1', 0, 'val0');
    $redis->zAdd('k1', 1, 'val1');
    
    $redis->zAdd('k2', 2, 'val2');
    $redis->zAdd('k2', 3, 'val3');
    
    $redis->zUnion('ko1', array('k1', 'k2')); /* 4, 'ko1' => array('val0', 'val1', 'val2', 'val3') */
    
    /* Weighted zUnion */
    $redis->zUnion('ko2', array('k1', 'k2'), array(1, 1)); /* 4, 'ko2' => array('val0', 'val1', 'val2', 'val3') */
    $redis->zUnion('ko3', array('k1', 'k2'), array(5, 1)); /* 4, 'ko3' => array('val0', 'val2', 'val3', 'val1') */
    

    zScan


    说明:使用可选的图案和数量扫描成员的有序集合

    参数

    key:String,设置为扫描  迭代器:Long(引用),初始化为NULL  pattern:String(可选),要匹配的模式  count:每次迭代返回多少个键(Redis可能返回不同的数字)

    返回值

    数组,boolean  当迭代完成时 PHPRedis将返回来自Redis的匹配键,或返回FALSE

    $it = NULL;
    $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
    while($arr_matches = $redis->zScan('zset', $it, '*pattern*')) {
        foreach($arr_matches as $str_mem => $f_score) {
            echo "Key: $str_mem, Score: $f_score
    ";
        }
    }
    

    酒吧/分

    pSubscribe


    说明:按模式订阅频道

    参数

    模式:匹配回调的模式数组  :一个字符串或一个包含对象和方法的数组。该回调将获得四个参数($ redis,$ pattern,$ channel,$ message)  返回值:混合。回调中的任何非空返回值将返回给调用者。

    function pSubscribe($redis, $pattern, $chan, $msg) {
        echo "Pattern: $pattern
    ";
        echo "Channel: $chan
    ";
        echo "Payload: $msg
    ";
    }
    

    发布


    说明:将消息发布到频道。警告:这个功能将来可能会改变。

    参数

    频道:发布到messsage的一个频道  :字符串

    $redis->publish('chan-1', 'hello, world!'); // send message.
    

    订阅


    说明:订阅频道。警告:这个功能将来可能会改变。

    参数

    通道:订阅回调的通道数组  :字符串或数组($ instance,'method_name')。回调函数接收3个参数:redis实例,通道名称和消息。 返回值:混合。回调中的任何非空返回值将返回给调用者。

    function f($redis, $chan, $msg) {
        switch($chan) {
            case 'chan-1':
                ...
                break;
    
            case 'chan-2':
                ...
                break;
    
            case 'chan-2':
                ...
                break;
        }
    }
    
    $redis->subscribe(array('chan-1', 'chan-2', 'chan-3'), 'f'); // subscribe to 3 chans
    

    发布订阅


    说明:允许您获取Redis pub / sub系统信息的命令。

    参数

    关键字:字符串,可以是:“channels”,“numsub”或“numpat”  参数:可选,变体。对于“频道”子命令,您可以传递字符串模式。用于“numsub”通道名称的数组。

    返回值

    CHANNELS:返回一个数组,其中的成员是匹配的频道。 NUMSUB:返回键/值数组,其中键是通道名称,值是它们的计数。 NUMPAT:包含活动模式订阅数的整数返回值

    $redis->pubSub("channels"); /*All channels */
    $redis->pubSub("channels", "*pattern*"); /* Just channels matching your pattern */
    $redis->pubSub("numsub", Array("chan1", "chan2")); /*Get subscriber counts for 'chan1' and 'chan2'*/
    $redsi->pubSub("numpat"); /* Get the number of pattern subscribers */
    

    交易

    1. multi,exec,discard  - 进入并退出交易模式
    2. 观看,观看  - 观看另一个客户端的修改密钥。

    多,执行,丢弃。


    说明:进入并退出交易模式。

    参数

    (可选)  Redis::MULTI 或  Redis::PIPELINE默认为  Redis::MULTI一个  Redis::MULTI 命令块作为单个事务运行; 一个  Redis::PIPELINE 块只是简单地传输给服务器,但是没有任何原子性的保证。discard 取消交易。

    返回值

    multi() 返回Redis实例并进入多模式。一旦进入多模式,所有后续的方法调用将返回相同的对象直到  exec() 被调用。

    $ret = $redis->multi()
        ->set('key1', 'val1')
        ->get('key1')
        ->set('key2', 'val2')
        ->get('key2')
        ->exec();
    
    /*
    $ret == array(
        0 => TRUE,
        1 => 'val1',
        2 => TRUE,
        3 => 'val2');
    */
    

    看,不看


    说明:监视其他客户端修改的密钥。

    如果密钥在WATCH 和  之间被修改  EXEC,则MULTI / EXEC事务将失败(返回  FALSE)。 unwatch 取消该客户端对所有密钥的观看。

    参数

    keys:一个键或一个键列表的字符串

    $redis->watch('x'); // or for a list of keys: $redis->watch(array('x','another key'));
    /* long code here during the execution of which other clients could well modify `x` */
    $ret = $redis->multi()
        ->incr('x')
        ->exec();
    /*
    $ret = FALSE if x has been modified between the call to WATCH and the call to EXEC.
    */
    

    脚本

    • eval  - 评估LUA脚本serverside
    • evalSha  - 从脚本的SHA1哈希值而不是脚本本身评估LUA脚本serverside
    • 脚本  - 执行Redis SCRIPT命令在脚本子系统上执行各种操作
    • getLastError  - 最后一个错误消息(如果有的话)
    • clearLastError  - 清除最后一条错误消息
    • _prefix  - 一种实用程序方法,将值前缀设置为phpredis的前缀
    • _unserialize  - 使用任何序列化程序设置的反序列化数据的实用程序方法
    • _serialize  - 用于设置任何序列化程序来序列化数据的实用程序方法

    EVAL


    说明:评估LUA脚本serverside

    参数

    脚本  字符串。 参数  数组,可选。 num_keys  int,可选。

    返回值

    混合。返回的内容取决于LUA脚本本身返回的内容,可能是标量值(int / string)或数组。返回的数组也可以包含其他数组,如果这是在您的LUA脚本中设置的。如果执行LUA脚本时出错,getLastError()函数可以告诉你从Redis返回的消息(例如编译错误)。

    例子
    $redis->eval("return 1"); // Returns an integer: 1
    $redis->eval("return {1,2,3}"); // Returns Array(1,2,3)
    $redis->del('mylist');
    $redis->rpush('mylist','a');
    $redis->rpush('mylist','b');
    $redis->rpush('mylist','c');
    // Nested response:  Array(1,2,3,Array('a','b','c'));
    $redis->eval("return {1,2,3,redis.call('lrange','mylist',0,-1)}");
    

    Avlksh


    说明:从脚本的SHA1散列而不是脚本本身评估LUA脚本serverside。

    为了运行此命令,Redis必须已经加载脚本,可以通过运行脚本或通过SCRIPT LOAD命令来加载脚本。

    参数

    script_sha  字符串。您要运行的脚本的sha1编码散列。 参数  数组,可选。传递给LUA脚本的参数。 num_keys  int,可选。应该进入KEYS数组的参数的数量,与Redis旋转脚本时的ARGV数组

    返回值

    混合。参见EVAL

    例子
    $script = 'return 1';
    $sha = $redis->script('load', $script);
    $redis->evalSha($sha); // Returns 1
    

    脚本


    说明:执行Redis SCRIPT命令以在脚本子系统上执行各种操作。

    用法
    $redis->script('load', $script);
    $redis->script('flush');
    $redis->script('kill');
    $redis->script('exists', $script1, [$script2, $script3, ...]);
    
    返回值
    • SCRIPT LOAD将成功返回传递脚本的SHA1哈希,失败时返回FALSE。
    • SCRIPT FLUSH应始终返回TRUE
    • 如果脚本能够被杀死,SCRIPT KILL将返回true,否则返回false
    • SCRIPT EXISTS将为每个传递的脚本返回一个TRUE或FALSE数组

    客户


    说明:使用各种参数发出CLIENT命令。

    Redis CLIENT命令可以通过四种方式使用。

    • 客户列表
    • 客户端GETNAME
    • 客户端SETNAME [名称]
    • CLIENT KILL [ip:port]
    用法
    $redis->client('list'); // Get a list of clients
    $redis->client('getname'); // Get the name of the current connection
    $redis->client('setname', 'somename'); // Set the name of the current connection
    $redis->client('kill', <ip:port>); // Kill the process at ip:port
    
    返回值

    这将根据执行的客户端命令而有所不同。

    • CLIENT LIST将返回一个包含客户信息的数组数组。
    • CLIENT GETNAME将返回客户端名称,如果没有设置,则返回false
    • 如果可以设置,CLIENT SETNAME将返回true,否则返回false
    • 如果客户端可以被杀死,CLIENT KILL将返回true,否则返回false

    注意:phpredis会尝试重新连接,所以你可以杀死自己的连接,但可能不会注意到丢失它!

    GetLastError函数


    说明:最后一条错误消息(如果有的话)

    参数

    没有

    返回值

    包含上次返回的基于脚本的错误消息的字符串,如果没有错误,则返回NULL

    例子
    $redis->eval('this-is-not-lua');
    $err = $redis->getLastError();
    // "ERR Error compiling script (new function): user_script:1: '=' expected near '-'"
    

    clearLastError


    说明:清除上一条错误消息

    参数

    没有

    返回值

    BOOL  TRUE

    例子
    $redis->set('x', 'a');
    $redis->incr('x');
    $err = $redis->getLastError();
    // "ERR value is not an integer or out of range"
    $redis->clearLastError();
    $err = $redis->getLastError();
    // NULL
    

    _字首


    说明:一种实用程序方法,将值前缀设置为phpredis的前缀。

    参数

      字符串。您希望前缀的值

    返回值

    如果设置了前缀,则该值现在加前缀。如果没有前缀,则该值将不会被返回。

    例子
    $redis->setOption(Redis::OPT_PREFIX, 'my-prefix:');
    $redis->_prefix('my-value'); // Will return 'my-prefix:my-value'
    

    _连载


    说明:手动序列化值的实用程序方法。

    这个方法允许你用任何序列化器配置的序列化值,手动。这对于进出EVAL命令的序列化/非序列化数据很有用,因为phpredis本身不能自动执行此操作。请注意,如果未设置序列化程序,则phpredis将将数组值更改为“数组”,将对象更改为“对象”。

    参数

    价值:混合。要序列化的值

    例子
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
    $redis->_serialize("foo"); // returns "foo"
    $redis->_serialize(Array()); // Returns "Array"
    $redis->_serialize(new stdClass()); // Returns "Object"
    
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
    $redis->_serialize("foo"); // Returns 's:3:"foo";'
    

    _unserialize


    说明:使用任何序列化程序设置的反序列化数据的实用程序方法。

    如果没有设置序列化器,则该值将被返回不变。如果设置了序列化程序,并且传入的数据格式不正确,则会引发异常。如果phpredis正在序列化值,并且您在序列化的LUA脚本中从redis返回某些内容,则这可能很有用。

    参数

      字符串。要反序列化的值

    例子
    $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
    $redis->_unserialize('a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}'); // Will return Array(1,2,3)
    

    内省

    已连接


    说明:一种确定phpredis对象是否认为它已连接到服务器的方法

    参数

    没有

    返回值

    Boolean  如果phpredis认为它已连接,则返回TRUE;否则返回FALSE

    和getHost


    说明:检查我们连接的主机或unix插槽

    参数

    没有

    返回值

    混合连接  的主机或unix套接字,或者如果我们未连接,则为FALSE

    的getPort


    说明:获取我们连接的端口

    参数

    没有

    返回值

    混合  返回我们连接的端口,如果我们没有连接,则返回FALSE

    getDbNum


    说明:获取phpredis指向的数据库编号

    参数

    没有

    返回值

    混合  返回数据库编号(长)phpredis认为它指向或错误,如果我们没有连接

    getTimeout


    说明:获取用于phpredis的(写入)超时

    参数

    没有

    返回值

    混合  在我们的连接调用中指定的超时(DOUBLE),如果我们没有连接,则为FALSE

    getReadTimeout

    说明:如果我们未连接,请将读取超时指定为phpredis或FALSE

    参数

    没有

    返回值

    混合  返回读取超时(可以使用setOption和Redis :: OPT_READ_TIMEOUT设置)或者如果我们没有连接,则返回FALSE

    getPersistentID


    说明:获取phpredis正在使用的持久ID

    参数

    没有

    返回值

    混合  返回phpredis正在使用的持久性标识(仅在与pconnect连接时才会设置),如果我们不使用持久性标识,则返回NULL,如果我们未连接,则返回FALSE

    getAuth


    说明:获取用于认证phpredis连接的密码

    参数

    没有

    返回值

    混合  返回用于认证phpredis会话的密码,如果没有使用密码,则返回NULL;如果没有连接,则返回FALSE

  • 相关阅读:
    LeetCode222完全二叉树的节点个数
    经典SQL语句大全
    SQL Server加密与解密
    用命令实现Win7远程桌面关机和重启
    如何用delphi做主从表
    SQL Server读取及导入Excel数据
    SQL 基础命令和函数
    Android获取文件夹路径 /data/data/
    IjkPlayer的使用
    aes+base64解密文件出现乱码
  • 原文地址:https://www.cnblogs.com/sars/p/9072728.html
Copyright © 2020-2023  润新知