xcjiu/php-redis

application Redis extension for PHP class

dev-master 2019-07-17 11:48 UTC

This package is not auto-updated.

Last update: 2024-10-24 08:07:26 UTC


README

(开始在 PHP 中使用 Redis 前, 请确保已经安装了 redis 服务及 PHP redis 驱动)

这是一个Redis应用类,所有方法均使用静态调用(包含字符串方法,哈希表,列表,集合,有序集合常用方法封装)

实例化类配置参数说明:$redis = new redis\Redis($config);

$config = [
    'host' => '127.0.0.1',  //服务器连接地址。默认='127.0.0.1'
    'port' => '6379',  //端口号。默认='6379'
    'expire' => 3600,  // 默认全局过期时间,单位秒。不填默认3600
    'password' => '',  // 连接密码,如果有设置密码的话
    'db' => 0,   //缓存库选择。默认0
    'timeout' => 10  // 连接超时时间(秒)。默认10
];

/*不用配置所有的参数,只需要配置和默认配置不同的参数即可,如:
$config = [
    'password' => '123456',
    'expire' => 7200
];*/

如果不需要更改默认参数值的话,不需要传入任何参数:$redis = new redis\Redis();

如果你放在框架里用(或有自动加载机制),直接命名空间引入即可用,不需要实例化类!

use redis\Redis; 就可直接静态调用了

如thinkphp框架,把文件夹redis放入extend目录下,在控制器中使用如:

<?php
namespace app\index\controller;
use redis\Redis;
class Index
{
    public function index()
    {
        ........
        Redis::set('key', 'value', 7200);
        $res = Redis::get('key');
        ........

        /*---------------支持事务-----------*/
        //开启事务:
        Redis::transation();

        //执行队列
        Redis::set($key, $value);
        Redis::hset($table,$column,$value);
        ......

        //提交事务
        Redis::commit();
        //取消事务 Redis::discard();
    }
}

具体方法说明如下:(以下$redis变量表示Redis对象)如果想使用原生的方法也可以,如:$redis::myself()->set($key, $value);

  • $redis::selectdb($db);

切换到指定的数据库, 数据库索引号用数字值指定

参数说明:

$db int [指定的库]

  • $redis::savedb();

创建当前数据库的备份(该命令将在 redis 安装目录中创建dump.rdb文件)

return bool 成功true否则false (如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可)

  • $redis::set($key, $value, $expire=0);

存储一个键值 (支持数组、对象)

参数说明:(参数名,类型,[中文说明])

$key string | int [ 键名]

$value mix [要存储的值,支持数组、对象]

$expire int [过期时间(秒),如果使用全局过期时间配置,可以不填]

return bool [返回布尔值,成功true, 否则false]

  • $redis::expire($key, $expire=0);

设置过期时间(秒)

参数说明:(参数名,类型,[中文说明])

$key string | int [ 键名]

$expire int [过期时间(秒),如果使用全局过期时间配置,可以不填]

return bool [返回布尔值,成功true, 否则false]

  • $redis::get($key);

获取一个键值

参数说明:

$key string | int [键名]

return mix [返回键值,如果键不存在则返回false]

  • $redis::del($key);

删除一个键值

参数说明:

$key string | int [键名]

return mix [删除成功返回 1,删除失败或键不存在返回 0]

  • $redis::substr($key, $start, $end=0);

截取缓存字符串值(支持汉字)

参数说明:

$key string | int [键名]

$start int [起始位置,从0开始记]

$end int [截取长度,默认值0表示截取从起始位置到最后一个字符]

return string [返回字符串,如果键不存在或取值不是字符串类型则返回 false]

  • $redis::replace($key, $value, $expire=0);

设置指定 key 的值,并返回 key 的旧值(支持数组)

参数说明:

$key string | int [键名]

$value mix [要指定的键值]

$expire int [过期时间,如果不设置则用全局过期配置]

return mix [返回旧值,如果旧值不存在则返回false,并新创建key的键值]

  • $redis::mset($arr);

同时设置一个或多个键值对。(支持键值为数组)

参数说明:

$arr array [要设置的键值对数组]

return bool [返回布尔值,成功true否则false]

  • $redis::mget($args)

返回所有(一个或多个)给定 key 的值

参数说明:

可传入一个或多个键名参数,键名字符串类型,如 $values = $redis::mget('one','two','three', ...);

返回包含所有指定键值的数组,如果值不存在则返回false

  • $redis::expiretime($key);

查询剩余过期时间(秒)

参数说明:

$key string | int [键名]

return int [返回剩余的存活时间(秒),如果已过期则返回负数]

  • $redis::setnx($key, $value, $expire=0);

指定的 key 不存在时,为 key 设置指定的值(SET if Not eXists)

参数说明:

$key string | int [键名]

$value mix [要指定的键值]

$expire int [过期时间,如果不设置则用全局过期配置]

return bool [设置成功返回true否则false]

  • $redis::valuelen($key);

返回字符串的长度,如果键值是数组则返回数组元素的个数

参数说明:

$key string | int [键名]

return int [返回长度值,如果键值不存在则返回0]

  • $redis::inc($key, $int=0);

将 key 中储存的数字值自增

参数说明:

$key string | int [键名]

$int int [$int 自增量,如果不填则默认是自增量为 1]

return int | bool [返回自增后的值,如果键不存在则新创建值为0并返回自增后的数值.如果键值不是可转换的整数,则返回false]

  • $redis::dec($key, $int=0);

将 key 中储存的数字值自减

参数说明:

$key string | int [键名]

$int int [$int 自减量,如果不填则默认是自减量为 1]

return int | bool [返回自减后的值,如果键不存在则新创建值为0并返回自减后的数值.如果键值不是可转换的整数,则返回false]

  • $redis::append($key, $value, $pos=false, $expire=0);

为指定的 key 追加值(追加至末尾或开头位置,支持数组值追加)

参数说明:

$key string | int [键名]

$value string | array [要指定的键值]

$pos bool [追加的位置,默认false为末尾,true为向开头位置追加]

$expire int [过期时间,如果不设置则用全局过期配置]

return bool [设置成功返回true否则false,向字符串值追加时加入的值必须为字符串类型。如果键不存在则创建新的键值对]

  • $redis::hset($table, $column, $value, $expire=0);

为哈希表中的字段赋值

参数说明:

$table string [哈希表名]

$column string [字段名]

$value string | array [字段值,如果传入的是数组则自动转换为json字符串]

$expire int [过期时间,如果不填,默认0为不设置过期时间]

return int 如果成功返回 1,否则返回 0.当字段值已存在时覆盖旧值并且返回 0

  • $redis::hget($table, $column);

获取哈希表字段值

参数说明:

$table string [哈希表名]

$column string [字段名]

return string 返回字段值,如果字段值是数组保存的返回json格式字符串,转换成数组json_encode($value),如果字段不存在返回false

  • $redis::hdel($table, $column1, $column2, ....);

删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略(删除整个哈希表用$redis::del($table))

参数说明:

$table string [哈希表名]

$column string [字段名]

return int 返回被成功删除字段的数量,不包括被忽略的字段,(删除哈希表用$redis::del($table))

  • $redis::hexists($table, $column);

查看哈希表的指定字段是否存在

参数说明:

$table string [哈希表名]

$column string [字段名]

return bool 存在返回true,否则false

  • $redis::hgetall($table);

返回哈希表中,所有的字段和值(键值对数组)

参数说明:

$table string [哈希表名]

return array 返回键值对数组

  • $redis::hinc($table, $column, $num=1);

为哈希表中的字段值加上指定增量值(支持整数和浮点数)

参数说明:

$table string [哈希表名]

$column string [字段名]

$num int [增量值,默认1,也可以填入负数值,相当于对指定字段进行减法操作]

return int|float|bool 返回计算后的字段值,如果字段值不是数字值则返回false,如果哈希表不存在或字段不存在返回false

  • $redis::hkeys($table);

获取哈希表中的所有字段

参数说明:

$table string [哈希表名]

return array 返回包含所有字段的数组

  • $redis::hvals($table);

获取哈希表中的所有字段值

参数说明:

$table string [哈希表名]

return array 返回包含所有字段值的数组,数字索引

  • $redis::hlen($table);

获取哈希表中字段的数量

参数说明:

$table string [哈希表名]

return int 返回字段数量,如果哈希表不存在则返回0

  • $redis::hmget($table, $column1, $column2, ....);

获取哈希表中,一个或多个给定字段的值

参数说明:

$table string [哈希表名]

$columns string [字段名,可传多个]

return array 返回键值对数组,如果字段不存在则字段值为null, 如果哈希表不存在返回空数组

  • $redis::hmset($table, array $data, $expire=0);

同时将多个 field-value (字段-值)对设置到哈希表中

参数说明:

$table string [哈希表名]

$data array [要添加的键值对]

$expire int [过期时间,默认值0或不填则不设置过期时间]

return bool 成功返回true,否则false

  • $redis::hsetnx($table, $column, $value, $expire=0);

为哈希表中不存在的的字段赋值

参数说明:

$table string [哈希表名]

$column string [字段名]

$value mix [字段值]

$expire int [过期时间,默认值0或不填则不设置过期时间]

return bool 成功返回true,否则false

  • $redis::lpush($list, $value, $pop='first', $expire=0);

将一个或多个值插入到列表头部(值可重复)或列表尾部。如果列表不存在,则创建新列表并插入值将一个或多个值插入到列表头部。如果列表不存在,则创建新列表并插入值

参数说明:

$list string [列表名]

$value string|array [要插入的值,如果要插入多个值请传入多个值的数组]

$pop string [要插入的位置,默认first头部,last表示尾部]

$expire int [过期时间,默认值0或不填则不设置过期时间]

return int 返回列表的长度

  • $redis::lindex($list, $index=0);

通过索引获取列表中的元素

参数说明:

$list string [列表名]

$index int 索引位置,从0开始计,默认0表示第一个元素,-1表示最后一个元素索引

return string 返回指定索引位置的元素

  • $redis::lset($list, $index, $value);

通过索引来设置元素的值

参数说明:

$list string [列表名]

$index int [索引位置]

$value string [要设置的值]

return bool 成功返回true,否则false.当索引参数超出范围,或列表不存在返回false。

  • $redis::lrange($list, $start=0, $end=-1);

返回列表中指定区间内的元素

参数说明:

$list string [列表名]

$start int 起始位置,从0开始计,默认0

$end int 结束位置,-1表示最后一个元素,默认-1

return array 返回列表元素数组

  • $redis::llen($list);

返回列表的长度

参数说明:

$list string [列表名]

return int 返回列表长度

  • $redis::lpop($list, $pop='first');

移出并获取列表的第一个元素或最后一个元素(默认第一个元素)

参数说明:

$list string [列表名]

$pop string [移出并获取的位置,默认first第一个元素,设为last则为最后一个元素]

return string|bool 移出并返回列表第一个元素或最后一个元素,如果列表不存在则返回false

  • $redis::lpoppush($list1, $list2);

从列表1中弹出最后一个值,将弹出的元素插入到另外一个列表2开头并返回这个元素

参数说明:

$list1 string [要弹出元素的列表名]

$list2 string [要接收元素的列表名]

return string|bool 返回被弹出的元素,如果其中有一个列表不存在则返回false

  • $redis::lisert($list, $element, $value, $pop='before');

用于在指定的列表元素前或者后插入元素。如果元素有重复则选择第一个出现的位置。当指定元素不存在于列表中时,不执行任何操作

参数说明:

$list string [列表名]

$element string [指定的元素]

$value string [要插入的元素]

return int 返回列表的长度。 如果没有找到指定元素 ,返回 -1 。 如果列表不存在或为空列表,返回 0 。

  • $redis::lrem($list, $element, $count=0);

移除列表中指定的元素

参数说明:

$list string [列表名]

$element string [指定的元素]

$count int [要删除的个数,0表示删除所有指定元素,负整数表示从表尾搜索, 默认0]

return int 返回被移除元素的数量。 列表不存在时返回 0

  • $redis::ltrim($list, $start, $stop);

让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

参数说明:

$list string [列表名]

$start int [起始位置,从0开始计]

$stop int [结束位置,负数表示倒数第n个位置]

return bool 成功返回true否则false

  • $redis::sadd($set, $member);

将一个或多个成员加入到集合中,已经存在于集合的元素将被忽略.如果集合不存在,则创建。(无序集合)

参数说明:

$set string [集合名称]

$member string|array [要加入的值,如果要加入多个值请传入多个值的数组]

return int 返回被添加元素的数量

  • $redis::smembers($set);

返回无序集合中的所有的成员

参数说明:

$set string [集合名称]

return array 返回包含所有成员的数组

  • $redis::scard($set);

获取集合中元素的数量。

参数说明:

$set string [集合名称]

return int 返回集合的成员数量

  • $redis::spop($set);

移除并返回集合中的一个随机元素

参数说明:

$set string [集合名称]

return string|bool 返回移除的元素,如果集合为空则返回false

  • $redis::srem($set, $member);

移除集合中的一个或多个成员元素,不存在的成员元素会被忽略

参数说明:

$set string [集合名称]

$member string|array [要移除的元素,如果要移除多个元素请传入多个元素的数组]

return int 返回被移除元素的个数

  • $redis::srand($set, $count=0);

返回集合中的一个或多个随机元素

参数说明:

$set string [集合名称]

$count int [要返回的元素个数,0表示返回单个元素,大于等于集合基数则返回整个元素数组。默认0]

return string|array [返回随机元素,如果是返回多个则为数组返回]

  • $redis::sdiff($set1, $set2);

返回给定集合之间的差集(集合1相对于集合2的差集)。不存在的集合将视为空集

参数说明:

$set1 string [集合1名称]

$set2 string [集合2名称]

return array 返回差集数组(即筛选存在集合1中但不存在于集合2中的元素)

  • $redis::sdiffstore($set, $set1, $set2);

将给定集合set1和set2之间的差集存储在指定的set集合中。如果指定的集合已存在,则会被覆盖。

参数说明:

$set string [指定存储的集合]

$set1 string [集合1]

$set2 string [集合2]

return int 返回指定存储集合元素的数量

  • $redis::sinter($set1, $set2);

返回set1集合和set2集合的交集(即筛选同时存在集合1和集合2中的元素)

参数说明:

$set1 string [集合1]

$set2 string [集合2]

return array 返回包含交集元素的数组

  • $redis::sinterstore($set, $set1, $set2);

将给定集合set1和set2之间的交集存储在指定的set集合中。如果指定的集合已存在,则会被覆盖。

参数说明:

$set string [指定存储的集合]

$set1 string [集合1]

$set2 string [集合2]

return int 返回指定存储集合元素的数量

  • $redis::sismember($set, $member);

判断成员元素是否是集合的成员

参数说明:

$set string [集合名称]

$member string [要判断的元素]

return bool 如果成员元素是集合的成员返回true,否则false

  • $redis::remove($set1, $set2, $member);

将元素从集合1中移动到集合2中

参数说明:

$set1 string [集合1]

$set2 string [集合2]

$member string [要移动的元素]

return bool 成功返回true,否则false

  • $redis::sunion($set1, $set2);

返回集合1和集合2的并集(即两个集合合并后去重的结果)。不存在的集合被视为空集。

参数说明:

$set1 string [集合1]

$set2 string [集合2]

return array 返回并集数组

  • $redis::sunionstore($set, $set1, $set2);

将给定集合set1和set2之间的交集存储在指定的set集合中。如果指定的集合已存在,则会被覆盖。

参数说明:

$set string [指定存储的集合]

$set1 string [集合1]

$set2 string [集合2]

return int 返回指定存储集合元素的数量

  • $redis::zadd($set, $arr);

将一个或多个成员元素及其分数值加入到有序集当中,如果成员已存在则更新它的分数值,如果集合不存在则创建

参数说明:

$set string [集合名称]

$arr array [成员元素与其分数值的键值对数组(键是唯一的),如 $arr=['one'=>2.5]]

return int 返回添加成功的成员数量

  • $redis::zrange($set, $start=0, $stop=-1, $desc=false);

返回有序集中,指定区间内的成员。默认返回所有成员(默认升序排列)

参数说明:

$set string [集合名称]

$start int [起始位置,从0开始计,默认0]

$stop int [结束位置,-1表示最后一位,默认-1]

$desc bool [false默认升序排序,true为倒序]

return array 返回有序集合中指定区间内的成员数组(默认返回所有)

  • $redis::acard($set);

返回有序集合中成员数量

参数说明:

$set string [集合名称]

return int [返回有序集合的成员数量]

  • $redis::zcount($set, $min, $max);

计算有序集合中指定分数区间的成员数量

参数说明:

$set string [集合名称]

$min int|float [最小分数值]

$max int|float [最大分数值]

return int 返回指定区间的成员数量

  • $redis::zinc($set, $member, $num=1);

对有序集合中指定成员的分数加上增量

参数说明:

$set string [集合名称]

$member string [指定的元素]

$num int|float [增量,负数值表示减法运算]

return float 返回运算后的分数值(浮点型)

  • $redis::zinterstore($set, $set1, $set2);

计算set1和set2有序集的交集,并将该交集(结果集)储存到新集合set中。

参数说明:

$set string [要存储的集合名称]

$set1 string [集合1]

$set2 string [集合2]

return int 返回保存到目标结果集的成员数量

  • $redis::zunionstore($set, $set1, $set2);

计算set1和set2有序集的并集,并将该并集(结果集)储存到新集合set中。

参数说明:

$set string [要存储的集合名称]

$set1 string [集合1]

$set2 string [集合2]

return int 返回保存到目标结果集的成员数量

  • $redis::zrangebyscore($set, $min, $max, $withscores=true);

返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列

参数说明:

$set string [集合名称]

$min string [最小分数值字符串表示,如:'1'表示>=1,'(1'表示>1]

$max string [最大分数值字符串表示,如:'100'表示<=1,'(100'表示<100]

$withscores bool 返回的数组是否包含分数值,默认true, false不包含

return array 返回指定区间的成员,默认是元素=>分数值的键值对数组。如果只要返回包含元素的数组请设置$withscores=false

  • $redis::zrank($set, $member);

返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列

参数说明:

$set string [集合名称]

$member string [要排名的成员]

return int|bool 返回 member 的排名, 如果member不存在返回false

  • $redis::zrem($set, $members);

移除有序集中的一个或多个成员,不存在的成员将被忽略

参数说明:

$set string [集合名称]

$members string|array [要移除的成员,如果要移除多个请传入多个成员的数组]

return int 返回被移除的成员数量,不存在的成员将被忽略

  • $redis::zrembyscore($set, $min, $max);

移除有序集中,指定分数(score)区间内的所有成员。

参数说明:

$set string [集合名称]

$min int|float [最小分数值]

$max int|float [最大分数值]

return int 返回被移除的成员数量

  • $redis::zrembyrank($set, $min, $max);

移除有序集中,指定排名(rank)区间内的所有成员(这个排名数字越大排名越高,最低排名0开始)

参数说明:

$set string [集合名称]

$min int [最小排名,从0开始计]

$max int [最大排名]

return int 返回被移除的成员数量

  • $redis::zscore($set, $member);

返回有序集中,成员的分数值。

参数说明:

$set string [集合名称]

$members string [成员]

return float|bool 返回分数值(浮点型),如果成员不存在返回false