phpredis 模块 api 说明

下载地址:https://github.com/phpredis/phpredis

# 构造函数
Redis::__construct()
$redis = new Redis();

# 链接函数
# connect(String host, int port [,float timeout :默认为0,不限,配置文件中也有限制])
# open(String host, int port [,float timeout :默认为0,不限,配置文件中也有限制])
# pconcect、popen # 不主动断开链接,类似长链接,参数参考上面

# setOption : 设置Redis模式
# getOption : 获取Redis模式
# ping hostname : 检查状态
# get(key): 获取值,如果不存在,则返回false
# set(key, value): 写入值,成功返回True
# setex(key, extime, value): 带生存时间的写入函数
# setnx(key, value): 判断是否重复的写入
# delete(key1, key2) | delete(array(key1, key2...)) : 删除key,返回删除的Key的个数
# ttl(key) : 生存时间
# persist : 删除生存时间到期的key,如果key到期,则true,否则false
# mset(array('key0'=>val0, key1=>val1, ...)) : 批量设置值
# mget(array(key0, key1, key2,...)) : 批量获取
# 开启事务,返回一个redis对象,并进入multi-mode 模式,其后的命令只有在 exec 被调用后才会执行
multi([Redis::MULTI| Redis::PIPELINE])
Redis::MULTI 为默认,可以保存原子性
Redis::PIPELINE 不能保存原子性
# exec() : 执行事务
# discard : 删除事务
# watch(key) : 监测一个key是不否在watch 与 exec 之间被修改,如果被修改,则Multi/Exec之间的事务执行失败,返回false

$redis ->watch('x');
$redis->multi()->incr('x')->exec();
$redis->unwatch('x');

# unwatch(key)  : 删除监控:
# exists(key) : 判断key是否存在,存在true,否则false
# incr(key) | incrby(key, setp) : 自增,默认为1,只有数字类型能使用,否则会报错
# decr(key) | decr(key, setp) : 自减,参考自增

List操作

# lpush(key, value) : left push 即list左边(头)压入
# rpush(key, value) : right push 即 list 右边(尾)压入
# lpushx(key, value) : list头压入,如果value存在,则不压入
# rpushx(key, value) : list 尾压入,如果value存在,则不压入
# lpop(key) : list 头弹出第一个元素
# rpop(key) : list 尾弹出第一个元素
# blpop / brpop : 未知
# lsize(key) : list 元素个数
# lindex(key, index) | lget(key, index) : 返回list类型的key中指定的元素
# lset(key, index, value) : 设置key指定位置的元素值
# lrange(key, startIndex, endIndex) | lgetRange(key, startIndex, endIndex) : 返回List 中指定位置的元素
# ltrim(key, startIndex, endIndex) | listTrim(key, startIndex, endIndex) : 截取List指定的元素
# lrem(key, value, count) | lremove(key, value, count) : 删除count个key中值为value的元素;[count = 0 : 删除全部] [count > 0 : 从头到尾删除 count 个元素][count < 0 : 从尾至头删除 |count| 个元素]
# linsert(key, Redis::AFTER | Redis::BEFORE ,  searchValue, newValue) : 在key中找到 searchValue ,然后根据第二个参数,在 searchValue之前或之后插入 newValue;如果Key不存在,则不会插入,如果searchValue不存在,则 return -1

$redis->del('key1');
$redis->linsert('key1', Redis::AFTER, 'A', 'X');
$redis->lpush('key1', 'A');
$redis->lpush('key1', 'B');
$redis->lpush('key1', 'C');
$redis->linsert('key1', Redis::BEFOE, 'C', 'X');
$redis->lrange('key1', 0 , -1);
$redis->linsert('key1', Redis::AFTER, 'C', 'Y');
$redis->lranger('key1', 0, -1);
$redis->linsert('key1', Redis::AFTER, 'W', 'value');

#rpoplpush(srcKey, dstkey) :  从srcKey中尾部弹出元素,并把此元素压入到 dstKey 头部,返回srcKey弹出的元素

$redis->lpush('key1', "x");
$redis->lpush('key1', "y");
$redis->lpush('key2', "w");
$redis->rpoplpuhs('key1', 'key2');
var_dump($redis->lrange('key1', 0, -1));
SET 操作

# sadd(key, value) :  如果value存在,不写入并返回false
# srem(key, value) | sremove(key, value) : 删除key中的value元素
# smove(srcKey, dstKey, value) : 从 srcKey 中移动 value 到 dstKey
# sisMember(key, value) | scontains(key, value) : 检查key中是否存在 value , 有则true, 没有则 false
# scard(key) | ssize(key) : 返回key元素个数
# spop(key) : 随机删除key中的一个元素
# sRandMember(key) : 随机返回key中的一个元素,不删除
# sInter(key1, key2, key3, ...) : 返回交集元素
# sInterStore(outKey, key1 ,key2 ...) : 返回交集并保存到outKey中
# sUnion(key1, key2, key3...) : 返回并集
# sUnionStore(outKey, key1, key2...) : 返回并集并保存在outKey中
# sDiff(key1, key2...) : 返回差集
# sDiffStore(outKey, key1, key2...) : 返回差集并保存在outKey中
# sMember(key)  | sGetMember(key) : 返回key中所有元素
# sort : 排序、分页等

参数:
'by'=>'some_pattern_*',
'limit'=>array(0, 1),
'get'=>'some_pattern_*' or 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'));
var_dump($redis->sort('s', array('sort'=>'desc')));
var_dump($redis->sort('s', array('sort'=>'desc', 'store'=>'out')));
String 操作

# getSet(key, value) : 返回原来的值,并写入新值

$redis->set('name', 'ysp');
$redis->getSet('name', 'ken');
$redis->get('name');

# append(key, value) : 附加新值到原来的字符串后面

$redis->append(key, newValue);

# strLen(key) : 返回key的长度

$redis->strLen(key);

# getBit(key) | setBit(key) : 设置|返回二进制信息

ZSET 操作

zset默认是按score从小到大已经排序好的集合
# zadd(key, score, member) : 添加member到key,并指定score,如果member存在,则根据score做更新顺序
# zrange(key, start, end, withscore) : 返回key中start 至 end 的元素,默认按score从小到大排序;withscore 表示是否返回member的score,默认false

$redis->zrange(key, 0, -1);
$redis->zrange(key, 0, -1, true); # withscore

# zDelete(key, member) | zRem(key, member) : 删除key中指定的member
# zRevRanger(key, start, end, withscore) : 排序反转【从大到小】,返回key中start至end的元素,withscore表示是否返回member的 score,默认false
# zRangeByScore(key, start, end, array(withscore, limit)) : 按小到大,返回 start <= score <= end 的元素,withscore 是否返回member的score; limit 返回个数
# zRevRangeByScory 参考上一个,只是排序为大到小
# zCount(key, start, end) : 从小到大,返回key中 start <= score <= end 的所有元素
# zSize(key) | zCard(key) : 返回key 的元素个数
# zScore(key, member) : 从小到大,返回 key 中 member的 score
# zRank(key, member) : 从小到大,返回key中member中的index
# zRevRank 参数上一个,只是排序为从大到小
# zIncrBy(key, increment, member) : 如果key中存在member,则此memeber的score添加increment,否则创建集合并添加member,其score则为increment
# zUnion(String keyOutPut, array zSetKeys, array Weights = 1,  String aggregateFunction) : 对N个集合做并集,然后对member中的score * weight,然后调用aggregateFunction 做运算,默认是 SUM 【结果集中元素的Score是所有集合对应元素进行SUM运算的值】,也可以是MAX| MIN(类似SUM)

HASH 操作

# hset(hkey, key, value) : 向hkey 中添加键值对 key => value
# hget(hkey, key) : 从hkey中获取key的值
# hlen(hkey) : 获取hkey的长度
# hdel(hkey, key) : 从hkey 中删除 key
# hkeys(hkey) : 返回hkey中所有的key
# hvals(hkey) : 返回hkey中所有的value
# hgetAll(hkey) : 返回hkey的键值对 key = > value
# hexists(hkey, key) : 检查hkey中是否存在key
# hincrby(hkey, key, increment) : 对hkey中的key自增 increment
# hmset(hkey, array(key1=>val1, key2=>val2,...)) : 向hkey中批量添加元素
# hmget(hkey, array(key1, key2, ...)) : 从hkey中批量获取key的值

Redis 操作

# flushdb : 清空当前数据库
# flushall : 清空所有数据库,以上两个命令最好修改,使用重命名,防止数据丢失
# randomkey : 随机返回一个key空间中的key
# select(dbNumber) : 选择数据库
# move(key, dbNumber) :  移动key到指定的数据库
# rename(oldKey, newKey)  | renameKey(oldKey, newKey): 重命名key
# renameNx(oldKey, newKey) : 重命名Key,如果newKey已经存在,则False
# setTimeout(key, times)  | expire(key, times) :  设置key存活时间
# expireAt(key, times) : 设置key存活到times时间为止
# keys(pattern), getKeys (pattern):  返回给定的pattern的所有key,默认:*
# dbSize() : 返回当前数据库的key数量
# auth(pass) : 验证当前的链接
# bgrewriteaof() : 后台使用aof持久化数据库
# slaveof(hostname, port) : 选择从服务器
# save() : 同步写入数据到磁盘
# bgsave() : 异步写入数据到磁盘
# lastSave() : 返回上次成功保存数据到磁盘的Unix时间戳
# info() : 返回当前服务器的相关信息
# type(key) :  返回key的在Redis中数据类型

string : Redis::REDIS_STRING
set : Redis::REDIS_SET
list : Redis::REDIS_LIST
zset : Redis::REDIS_ZSET
hash : Redis::REDIS_HASH
other : Redis::REDIS_NO_FOUND