phpRedis类所有方法的简介

  • Post author:
  • Post category:php


本文基于Github中phpredis的readme.md文档翻译,只截取了每个方法的简要介绍部分。

每个方法的具体参数和返回值,请参考原文:https://github.com/phpredis/phpredis/blob/develop/README.md

翻译此文档的目的,是为了速查某个具体phpredis类的方法,以便阅读理解使用phpredis的相关代码。



1. Redis 类


创建一个Redis客户端实例:

$redis = new Redis();

从版本6.0.0开始,可以指定配置选项,允许不调用’ connect ‘命令就可以连接到服务器。

$redis = new Redis(
    'host' => '127.0.0.1',
    'port' => 6379,
    'connectTimeout' => 2.5,
    'auth' => ['phpredis', 'phpredis'],
    'ssl' => ['verify_peer' => false],
    'backoff' => [
        'algorithm' => Redis::BACKOFF_ALGORITHM_DECORRELATED_JITTER,
        'base' => 500,
        'cap' => 750,
    ],
);



构建方法的参数说明



  • host


    : string, 主机名,也可以是一个访问Unix Domain Socket的路径.


  • port


    : int, 端口号,缺省是6379,如果主机是Unix Domain Socket的路径,则此值取 -1


  • connectTimeout


    : float, 连接超时限制,以秒为单位,0表示不限制


  • retryInterval


    : int, 可选参数,重试间隔时间,以毫秒为单位


  • readTimeout


    : float, 可选参数,读取超时限制,以秒为单位,缺省为0(不限制)


  • persistent


    : mixed, 是否要持久化存储,如果是一个字符串,将被用做一个持久化的id;否则此值被强制转化为bool类型


  • auth


    : mixed, 认证信息(账号,密码)


  • ssl


    : array, SSL相关的选项



2. Redis异常类:RedisException


phpredis 不能连接Redis 服务器时,会抛出一个 RedisException 类的对象。发生这种情况的原因可能是:连接出现问题、或Redis服务关闭,或Redis主机过载。

任何其他的问题(例如键不存在、无效命令等),phpredis将返回’ FALSE ‘。



3. phpRedis预定义常数


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, AFTER, BEFORE,…



4. 连接相关的方法



  • connect, open

    – 连接到Redis服务器

  • pconnect, popen

    – 连接一个持久化的Redis服务器

  • auth

    – 使用密码或用户名和密码连接Redis服务器。警告:密码以明文形式发送。

  • select

    – 在当前连接中,改为所选择的数据库

  • swapdb

    – 在两个Redis数据库之间切换

  • close

    – 关闭和Redis服务器的连接

  • setOption

    – 设置Redis客户端(实例对象)的选项

  • getOption

    – 获取Redis客户端(实例对象)的选项

  • ping

    – 测试和Redis服务器的连接

  • echo

    – 显示指定的字符串


重试和回退


  • 最大重试次数



    可以使用’ OPT_MAX_RETRIES ‘选项设置和获取连接的最大重试次数。注意这是

    重试次数

    ,如果将该选项设置为

    n

    ,那么总共将有

    n+1

    次的最大尝试次数。默认为10


  • 回退算法



    可以使用’ Redis::OPT_BACKOFF_ALGORITHM ‘选项设置回退算法。来自亚马逊云的Marc Brooker在下面这篇博客中中描述了可用的算法:

    Exponential Backoff And Jitter

    (https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter):



5. Redis服务器相关的方法


  • acl

    – 管理Redis的访问控制表(ACLs)

  • bgRewriteAOF

    – 异步重写只能追加内容的文件(append-only)

  • bgSave

    – 异步方式(in background)把数据库保存到磁盘

  • config

    – 设置或获取Redis服务器的配置参数

  • dbSize

    – 返回选中数据库中所有键的数量

  • flushAll

    – 删除所有数据库中的所有键

  • flushDb

    – 删除当前数据库中的所有键

  • info

    – 获取Redis服务器的信息和统计数据

  • lastSave

    – 获取最后一次磁盘保存时间的时间戳

  • save

    – 异步保存数据集到磁盘,等待完成

  • slaveOf

    – 使Redis服务器成为另一个实例的 Slave 实例,或将其提升为Master实例

  • time

    – 返回当前服务器的时间

  • slowLog

    – 访问Redis的慢日志记录



6. 字符串值和键相关的方法




6.1 字符串(Strings)


  • append

    – 给一个键添加一个值

  • bitCount

    – 统计字符串中的固定位(bits)数

  • bitOp

    – 执行字符串之间的位操作

  • decr, decrBy

    – 递减一个键的值

  • get

    – 获取一个键的值

  • getBit

    – 返回一个键的字符串值中偏移处的位值

  • getRange

    – 获取一个键的字符串值的子字符串

  • getSet

    – 设置键的字符串值并返回其旧值

  • incr, incrBy

    – 递增一个键的值

  • incrByFloat

    – 将键的浮点值按给定的数量递增

  • mGet, getMultiple

    – 获取所有给定键的值

  • mSet, mSetNX

    – 设置多个键的值

  • set

    – 设置一个键的字符串值

  • setBit

    – 设置或清除一个键的字符串值的偏移位置

  • setEx, pSetEx

    – 设置一个键的值和过期时间

  • setNx

    – 设置一个键的值,只有当这个键不存在的时候

  • setRange

    – 将一个键的字符串值,从指定偏移量开始的一部分进行覆盖

  • strLen

    – 获取一个键对应的值的长度



6.2 键(Keys)


  • del, delete, unlink

    – 删除一个键

  • dump

    – 将一个指定键的值进行序列化处理后返回

  • exists

    – 判断一个键是否存在

  • expire, setTimeout, pexpire

    – 设置一个键的生存时间,以秒为单位

  • expireAt, pexpireAt

    – 设置一个键的过期时间,使用Unix时间戳格式

  • keys, getKeys

    – 查找匹配指定模式的所有键

  • scan

    – 在键空间中扫描遍历所有的键(Redis >= 2.8.0)

  • migrate

    – 原子地将一个键从一个Redis实例转移到另一个实例

  • move

    – 将一个键移动到另外一个数据库

  • object

    – 检查Redis对象的内部结构

  • persist

    – 删除一个键的过期时间

  • randomKey

    – 从键空间中随机返回一个键

  • rename, renameKey

    – 重命名一个键

  • renameNx

    – 重命名一个键,只有在新的键名不存在的时候

  • type

    – 返回存储在键中的类型

  • sort

    – 对一个列表、集合或有序集合中的元素进行排序

  • ttl, pttl

    – 获取一个键的生存时间

  • restore

    – 使用先前通过

    dump

    转化得到的序列化值创建一个键



7. 哈希类型(Hashes)相关的方法


  • hDel

    – 删除一个或多个哈希字段

  • hExists

    – 判断一个哈希字段是否存在

  • hGet

    – 获取一个哈希字段的值

  • hGetAll

    – 从一个哈希数据中,获取所有的字段和和值

  • hIncrBy

    – 将哈希字段的整数值以给定的数字递增

  • hIncrByFloat

    – 将哈希字段的浮点值按给定的数量递增

  • hKeys

    – 获取一个哈希数据所有字段

  • hLen

    – 获取一个哈希数据中字段的数量

  • hMGet

    – 获取所有指定的哈希字段的的值

  • hMSet

    – 设置一个哈希数据中多个字段的值

  • hSet

    – 设置一个哈希字段中的字符串值

  • hSetNx

    – 设置一个哈希字段的值,只有当这个字段不存在的时候

  • hVals

    – 获取一个哈希数据中所有的值

  • hScan

    – 扫描哈希键的成员

  • hStrLen

    – 获取一个哈希数据中,某个字段对应的字符串值的长度



8. 列表类型(Lists)相关的方法


  • blPop, brPop

    – 删除并获取列表中的第一个/最后一个元素

  • bRPopLPush

    – 从列表中弹出一个值,将其推入另一个列表并返回

  • lIndex, lGet

    – 通过索引从列表中获取一个元素

  • lInsert

    – 在列表中的另一个元素之前或之后插入一个元素

  • lLen, lSize

    – 获取列表的长度/大小

  • lPop

    – 删除并获取列表中的第一个元素

  • lPush

    – 将一个或多个值前置到列表中

  • lPushx

    – 仅当列表存在时,才将值前置到列表

  • lRange, lGetRange

    – 从列表中获取元素的范围

  • lRem, lRemove

    – 从列表中删除元素

  • lSet

    – 通过索引设置列表中元素的值

  • lTrim, listTrim

    – 修剪列表到指定的范围

  • rPop

    – 删除并获取列表中的最后一个元素

  • rPopLPush

    – 删除列表中的最后一个元素,将其附加到另一个列表并返回它 (redis >= 1.1)

  • rPush

    – 将一个或多个值附加到列表中

  • rPushX

    – 仅当列表存在时,才向列表追加值



9. 集合类型(Sets)相关的方法


  • sAdd

    – 向集合中添加一个或多个成员

  • sCard, sSize

    – 获取集合中的成员数量

  • sDiff

    – 获取多个集合的差集

  • sDiffStore

    – 获取多个集合的差集,并将结果集存储在一个键中

  • sInter

    – 获取多个集合的交集

  • sInterStore

    – 获取多个集合的交集,并将结果集存储在一个键中

  • sIsMember, sContains

    – 确定给定值是否是集合的成员

  • sMembers, sGetMembers

    – 获取一个集合的所有成员

  • sMove

    – 把集合的一个成员移动到另外一个集合

  • sPop

    – 随机删除并返回集合中的一个或多个成员

  • sRandMember

    – 从集合中获取一个或多个随机成员

  • sRem, sRemove

    – 从集合中删除一个或多个成员

  • sUnion

    – 获取多个集合的合集

  • sUnionStore

    – 获取多个集合的合集,并将结果集存储在一个键中

  • sScan

    – 扫描一个集合中的成员



10. 有序集合类型(Sorted sets)相关的方法


  • bzPop

    – 弹出一个或多个zset的最高或最低得分成员,阻塞直到完成

  • zAdd

    – 向有序集合中添加一个或多个成员,或如果已存在则更新其评分

  • zCard, zSize

    – 获取有序集合中的成员数

  • zCount

    – 用给定值内的分数对有序集合中的成员进行计数

  • zIncrBy

    – 增加有序集合中成员的分数

  • zinterstore, zInter

    – 获取多个有序集合的交集,并将结果有序集合存储在一个新键中

  • zPop

    – 从一个有序集合中弹出最高或最低的成员

  • zRange

    – 按索引排序,返回有序集合中一个范围的成员

  • zRangeByScore, zRevRangeByScore

    – 按分数排序,返回有序集合中一个范围的成员

  • zRangeByLex

    – 从具有相同分数的成员中,返回一个字典范围

  • zRank, zRevRank

    – 确定有序集合中成员的索引

  • zRem, zDelete, zRemove

    – 从有序集合中删除一个或多个成员

  • zRemRangeByRank, zDeleteRangeByRank

    – 在给定索引内删除有序集合中的所有成员

  • zRemRangeByScore, zDeleteRangeByScore, zRemoveRangeByScore

    – 删除给定分数内有序集合中的所有成员

  • zRevRange

    – 按索引返回有序集合的成员范围,分数从高到低排序

  • zScore

    – 获取与有序集合中给定成员相关的分数

  • zunionstore, zUnion

    – 添加多个有序集合并将结果有序集合存储在新键中

  • zScan

    – 扫描有序集合的成员



11. HyperLogLogs类型相关的方法


  • pfAdd

    :将指定元素添加到指定的HyperLogLog中.

  • pfCount

    :返回HyperLogLog基于对键的观察得到的集合的近似基数.

  • pfMerge

    : 将N个不同的Hyperloglog合并为一个.



12. 地理空间数据类型(Geocoding)相关的方法


  • geoAdd

    :向指定的键添加一个或多个地理空间项。调用此函数时必须使用至少一个

    经度、纬度、成员

    三元组.

  • geoHash

    : 检索地理空间索引的一个或多个元素的Geohash字符串.

  • geoPos

    : 返回每个请求成员的经度、纬度位置.

  • geoDist

    : 返回地理空间集中两个成员之间的距离。如果传递了单位,它必须是以下值之一:

    • ‘m’ => 米;‘km’ => 公里;‘mi’ => 英里;‘ft’ => 英尺

  • geoRedius

    : 返回具有地理空间信息的集合成员,这些成员位于调用者指定的半径内。

  • geoRadiusByMember

    : 此方法与geoRadius相同,只是传递的不是经度和纬度作为“源”,而是传递地理空间集中的现有成员



13. 流类型(Streams)相关的方法


  • xAck

    – 获知一个或多个挂起的消息

  • xAdd

    – 向一个‘流’中添加消息

  • xClaim

    – 获取挂起消息的所有权

  • xDel

    – 从一个流中删除一条消息

  • xGroup

    – 管理消费者组

  • xInfo

    – 获取关于一个流的信息

  • xLen

    – 获取一个流的长度

  • xPending

    – 检查流中挂起的消息

  • xRange

    – 查询流中一个范围内的消息

  • xRead

    – 从流中读取消息

  • xReadGroup

    – 用一个组和消费者一起读取流消息

  • xRevRange

    – 从头到尾查询一条或多条消息

  • xTrim

    – 修剪流的大小



14. 发布和订阅相关的方法


  • pSubscribe

    – 按模式订阅频道

  • publish

    – 向一个频道发布消息

  • subscribe

    – 订阅多个频道

  • pubSub

    – 进入到发布和订阅的子系统中内省(Introspection)



15. 通用命令相关的方法


  • rawCommand

    – 基于Redis服务器执行任何的命令.



16. 脚本(Scripting)相关的方法


  • eval

    – 执行一个服务端的LUA脚本

  • evalSha

    – 基于脚本的SHA1散列而不是脚本本身,来执行服务端的LUA脚本

  • script

    – 通过执行Redis SCRIPT命令对脚本子系统进行各种操作

  • getLastError

    – 最新的错误消息(如果有的话)

  • clearLastError

    – 清楚最新的错误消息

  • _prefix

    – 使用phpredis的前缀设置,为值加上前缀的实用方法

  • _unserialize

    – 使用所设置的序列化器,对数据进行反序列化的实用方法

  • _serialize

    – 使用所设置的序列化器,对数据进行序列化的实用方法



17. 内省(Introspection)相关的方法


  • isConnected

    : 确定phpredis对象是否已连接到服务器

  • getHost

    : 获取所连接的主机或Unix Domain Sockets

  • getPort

    : 获取所连接的端口号

  • getDbNum

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

  • getTimeout

    : 获取phpredis正在使用的写操作的超时设置

  • getReadTimeout

    : 获取phpredis正在使用的读操作的超时设置,如果没有连接到Redis服务器,则返回FALSE

  • getPersistentID

    : 获得phpredis正在使用的持久化ID

  • getAuth

    :获取用于认证连接的密码(如果使用Redis 6 acl,则获取用户名和密码).