laravel redis 相关命令
发布日期:2025-04-04 02:50:18 浏览次数:12 分类:精选文章

本文共 3066 字,大约阅读时间需要 10 分钟。

Redis 是一个高性能的开源数据库,支持多种数据结构和操作。通过 Laravel 的 Redis 门面,开发者可以轻松地与 Redis 数据库交互,进行常见的操作定义。以下是关于 Redis 门面的一些详细信息和操作示例。

Redis 概述

Redis 是一个基于内存的数据结构存储解决方案,支持字符串、列表、哈希、集合和有序集合等多种数据类型。在 Laravel 中,Redis 门面通过 app('redis.connection') 提供默认的 Redis 连接对象,有些项目可能会定义多个 Redis 连接对象。

配置选项

Laravel 提供多种 Redis 配置选项,例如:

生成连接对象

默认连接对象名为 default,通过 app('redis.connection') 获取。用户可以自定义连接对象名,例如:

$redis = app('redis.connection');$myConnection = $redis->connection('mydefine');

连接参数

配置文件中的 redis 数组参数包括:

  • client:Redis 客户端类型,默认为 predis
  • default:默认 Redis 连接配置,包含 hostpasswordportdatabase 等参数。
  • mydefine:用户定义的 Redis 连接配置。
  • clusters:Redis 集群配置。

集群支持

通过配置 clusters,可以创建多个 Redis 集群。例如:

'redis' => [    'client' => 'predis',    'clusters' => [        'mycluster1' => [            'host' => env('REDIS_HOST', '127.0.0.1'),            'password' => env('REDIS_PASSWORD', null),            'port' => env('REDIS_PORT', 6379),        ],        // 其他集群配置...    ],],

使用示例

简单入门级操作

Set 操作
$redis = app('redis.connection');$redis->set('library', 'predis');$redis->get('library'); // 获取存储的值
Set 多个 Key-Value
$mkv = [    'usr:0001' => 'First user',    'usr:0002' => 'Second user',    'usr:0003' => 'Third user',];$redis->mset($mkv);$retval = $redis->mget(array_keys($mkv));
Set 存储时效性
$redis->setex('library', 10, 'predis'); // 有效时长为 10 秒$redis->setnx('foo', 12); // 添加成功$redis->setnx('foo', 34); // 添加失败
检测和删除
$redis->exists('foo'); // 检测 Key 是否存在$redis->del('foo'); // 删除 Key

常用操作

字符串操作

$redis->append('str', '_123'); // 将字符串连接到现有字符串末尾$redis->setrange('str', 0, 'abc'); // 替换字符串的某一部分$redis->substr('str', 0, 2); // 提取字符串的前部分$redis->strlen('str'); // 获取字符串长度

列表操作

$redis->rpush('fooList', 'bar1');$redis->lpush('fooList', 'bar0');$redis->rpoplpush('fooList', 'barTwo'); // 从一个队列弹出并推送到另一个队列$redis->ltrim('fooList', 0, 1); // 删除从队列头部开始的若干元素

集合操作

$redis->sadd('set1', 'ab');$redis->srem('set1', 'cd');$redis->spop('set1'); // 弹出集合中的第一个元素$redis->smembers('set1'); // 获取集合中的所有元素

有序集合操作

$redis->zadd('zset1', 1, 'ab');$redis->zadd('zset1', 2, 'cd');$redis->zrevrange('zset1', 0, -1); // 获取并反序排序$redis->zcount('zset1', 3, 5); // 统计索引范围内的元素个数

哈希操作

$redis->hset('hash1', 'key1', 'v1');$redis->hget('hash1', 'key1'); // 获取哈希表中的值$redis->hlen('hash1'); // 获取哈希表中的键值对个数$redis->hincrby('hash1', 'key5', 3); // 对哈希表中的值进行增加

排序操作

$redis->rpush('tab', 3);$redis->rpush('tab', 2);$redis->rpush('tab', 17);$redis->sort('tab'); // 按升序排序$redis->sort('tab', ['sort' => 'desc']); // 按降序排序

Redis 管理操作

信息查看

$redis->info(); // 查看 Redis 的状态信息

数据库操作

$redis->select(4); // 选择数据库编号$redis->flushdb(); // 清空当前数据库

从服务器和备份

$redis->slaveof('127.0.0.1', 80); // 将当前 Redis 服务器作为从服务器$redis->save(); // 异步备份数据到磁盘$redis->bgsave(); // 异步背景备份

其他操作

关键字操作

  • 使用 * 可以匹配任意字符串的前缀,例如 keys('foo*') 可以匹配 foo1foo2
  • ? 匹配任意单个字符,例如 keys('f?o?') 可以匹配 foo1foo2

随机操作

$redis->randomkey(); // 随机返回一个键$redis->blpop('list3', 10); // 阻塞等待队列不为空,弹出队列的第一个元素

消息队列操作

$redis->lpop('queue'); // 弹出队列中的第一个元素$redis->lrem('queue', 1, '_'); // 从队列头部删除指定数量的字符$redis->ltrim('queue', 0, 1); // 删除队列中从左边的若干条记录

通过以上操作,可以全面了解和使用 Redis 门面在 Laravel 应用中提供的功能。 Redis 提供的丰富数据结构和操作使其成为常用数据存储解决方案。

上一篇:Laravel RESTful API 开发框架指南
下一篇:Laravel Passport

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月30日 06时40分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章