Skip to content

Redis

WeeSpeed 使用 Redis 作为缓存,在环境变量中配置好 Redis 服务参数后,可以在代码中直接使用 Redis 类进行读写,如:

php
 $cacheValue = Redis::get('cacheKey');

注意

WeeSpeed 会自动连接 Redis 服务,你无需手动连接。

请使用 Redis 类的静态方法来操作 Redis。

Redis 类方法

Redis 类提供了以下方法:

1. 键(Key)相关指令

  • Redis::del(key [, key ...])
    删除一个或多个键。
    示例:Redis::del("key1", "key2")

  • Redis::exists(key)
    检查键是否存在。
    示例:Redis::exists("key")

  • Redis::expire(key, seconds)
    设置键的过期时间(秒)。
    示例:Redis::expire("key", 10)

  • Redis::ttl(key)
    获取键的剩余生存时间(秒)。
    示例:Redis::ttl("key")

  • Redis::persist(key)
    移除键的过期时间,使其永久有效。
    示例:Redis::persist("key")

  • Redis::keys(pattern)
    查找所有符合给定模式的键。
    示例:Redis::keys("user:*")

  • Redis::rename(key, newkey)
    重命名键。
    示例:Redis::rename("oldkey", "newkey")

  • Redis::type(key)
    获取键的数据类型。
    示例:Redis::type("key")


2. 字符串(String)相关指令

  • Redis::set(key, value)
    设置键的值。
    示例:Redis::set("name", "Alice")

  • Redis::get(key)
    获取键的值。
    示例:Redis::get("name")

  • Redis::incr(key)
    将键的值增加 1(仅适用于整数)。
    示例:Redis::incr("counter")

  • Redis::decr(key)
    将键的值减少 1(仅适用于整数)。
    示例:Redis::decr("counter")

  • Redis::append(key, value)
    将值追加到键的现有值末尾。
    示例:Redis::append("name", " Smith")

  • Redis::strlen(key)
    获取键存储的字符串长度。
    示例:Redis::strlen("name")


3. 哈希(Hash)相关指令

  • Redis::hset(key, field, value)
    设置哈希表中字段的值。
    示例:Redis::hset("user:1", "name", "Alice")

  • Redis::hget(key, field)
    获取哈希表中字段的值。
    示例:Redis::hget("user:1", "name")

  • Redis::hgetall(key)
    获取哈希表中所有字段和值。
    示例:Redis::hgetall("user:1")

  • Redis::hdel(key, field [, field ...])
    删除哈希表中的一个或多个字段。
    示例:Redis::hdel("user:1", "name")

  • Redis::hkeys(key)
    获取哈希表中的所有字段。
    示例:Redis::hkeys("user:1")

  • Redis::hvals(key)
    获取哈希表中的所有值。
    示例:Redis::hvals("user:1")


4. 列表(List)相关指令

  • Redis::lpush(key, value [, value ...])
    将一个或多个值插入列表头部。
    示例:Redis::lpush("mylist", "world")

  • Redis::rpush(key, value [, value ...])
    将一个或多个值插入列表尾部。
    示例:Redis::rpush("mylist", "hello")

  • Redis::lpop(key)
    移除并返回列表的第一个元素。
    示例:Redis::lpop("mylist")

  • Redis::rpop(key)
    移除并返回列表的最后一个元素。
    示例:Redis::rpop("mylist")

  • Redis::llen(key)
    获取列表的长度。
    示例:Redis::llen("mylist")

  • Redis::lrange(key, start, stop)
    获取列表中指定范围内的元素。
    示例:Redis::lrange("mylist", 0, -1)


5. 集合(Set)相关指令

  • Redis::sadd(key, member [, member ...])
    向集合中添加一个或多个成员。
    示例:Redis::sadd("myset", "Alice")

  • Redis::smembers(key)
    获取集合中的所有成员。
    示例:Redis::smembers("myset")

  • Redis::srem(key, member [, member ...])
    移除集合中的一个或多个成员。
    示例:Redis::srem("myset", "Alice")

  • Redis::sismember(key, member)
    判断成员是否在集合中。
    示例:Redis::sismember("myset", "Alice")

  • Redis::scard(key)
    获取集合的成员数量。
    示例:Redis::scard("myset")


6. 有序集合(Sorted Set)相关指令

  • Redis::zadd(key, score, member [, score, member ...])
    向有序集合中添加一个或多个成员。
    示例:Redis::zadd("myzset", 1, "Alice")

  • Redis::zrange(key, start, stop [, withscores])
    获取有序集合中指定范围内的成员(按分数升序)。
    示例:Redis::zrange("myzset", 0, -1, withscores: true)

  • Redis::zrem(key, member [, member ...])
    移除有序集合中的一个或多个成员。
    示例:Redis::zrem("myzset", "Alice")

  • Redis::zscore(key, member)
    获取有序集合中成员的分数。
    示例:Redis::zscore("myzset", "Alice")

  • Redis::zcard(key)
    获取有序集合的成员数量。
    示例:Redis::zcard("myzset")


7. 发布订阅(Pub/Sub)相关指令

  • Redis::publish(channel, message)
    向指定频道发布消息。
    示例:Redis::publish("news", "Hello World")

  • Redis::subscribe(channel [, channel ...])
    订阅一个或多个频道。
    示例:Redis::subscribe("news")

  • Redis::unsubscribe([channel [, channel ...]])
    退订一个或多个频道。
    示例:Redis::unsubscribe("news")


8. 事务(Transaction)相关指令

  • Redis::multi
    开启事务。
    示例:Redis::multi

  • Redis::exec
    执行事务中的所有命令。
    示例:Redis::exec

  • Redis::discard
    取消事务,放弃执行所有命令。
    示例:Redis::discard


9. 服务器(Server)相关指令

  • Redis::ping
    测试与服务器的连接是否正常。
    示例:Redis::ping

  • Redis::info([section])
    获取服务器的信息和统计。
    示例:Redis::info

  • Redis::flushdb
    清空当前数据库的所有数据。
    示例:Redis::flushdb

  • Redis::flushall
    清空所有数据库的数据。
    示例:Redis::flushall

  • Redis::save
    将数据同步保存到磁盘。
    示例:Redis::save

  • Redis::bgsave
    在后台异步将数据保存到磁盘。
    示例:Redis::bgsave