标签: phpredis

为什么应该关闭或保持 Redis 连接打开?

我在 PHP 项目中使用 Redis。我使用 phpredis 作为客户端。有时,在较长的 CLI 脚本中,我会遇到 PHP 分段错误。

我之前就遇到过phpredis在连接超时的时候出现问题。由于我的 Redis 配置被配置为在 300 秒后自动关闭空闲连接,我猜这会导致分段错误。

为了能够选择是增加连接超时还是默认为0(这意味着“永不超时”),我想知道可能的优点和缺点是什么?

为什么我永远不应该关闭连接?
为什么我应该确保连接不保持打开状态?

谢谢

php timeout segmentation-fault redis phpredis

6
推荐指数
1
解决办法
1万
查看次数

phprediss扩展无法正常工作,无法加载'redis.so'

我安装了nginx,php,php-fpm,php-pecl-redis.所有这些都有效,但最后一个有效.

当我跑步时/usr/sbin/php-fpm,我得到了这个:

PHP警告:PHP启动:无法加载动态库'/usr/lib/php/modules/redis.so' - /usr/lib/php/modules/redis.so:未定义符号:第0行未知的igbinary_unserialize

我不知道"igbnary_unserialize"是什么意思以及如何解决它.

我检查了正确路径下的redis.so文件.我添加extension=redis.so到"php.ini"

php版本:5.3.3 phpredis版本:2.2.7

php-extension redis phpredis

6
推荐指数
3
解决办法
8550
查看次数

检查 redis 中是否存在密钥的最快方法 - php

EXISTS除了检查 key 是否存在于 redis 之外,还有其他更快的方法吗?

我的问题是,我在 redis 中有超过 100 万条记录,我需要进行 key_exists 检查。这应该在 10 毫秒内发生。

对此有什么想法吗?

php redis phpredis predis

6
推荐指数
1
解决办法
1万
查看次数

Laravel 6 Horizo​​n Redis 异常

我的 Laravel 应用程序有问题 - 日志中有很多错误,如下所示:

READONLY 您无法针对只读副本进行写入。{“例外”:“[对象](RedisException(代码:0):READONLY您无法针对只读副本进行写入。位于 /var/www/app/vendor/laravel/framework/src/Illuminate/Redis/连接/PhpRedisConnection.php:30

我正在使用predislaravel/horizo​​n,但是使用phpredis也失败了。我的排队作业运行良好,但有时会因该错误而失败。

我正在使用:
Laravel 6 (QUEUE_CONNECTION = redis)
Laravel Horizo​​n + Supervisord
默认 Redis 安装

我不知道...这是 Redis 的问题吗?

redis laravel phpredis predis

6
推荐指数
0
解决办法
863
查看次数

如何使用phpredis在PHP中删除多个具有相同模式的redis键?

通过使用phpredis,我在分页中保存了一些数据,如下所示:

   review/itemA/1
   review/itemA/2 
Run Code Online (Sandbox Code Playgroud)

其中12是页码。我在文档中读到您可以使用通配符来检索多个键。

$allKeys = $redis->keys('*');   // all keys will match this.
$keyWithUserPrefix = $redis->keys('user*');
Run Code Online (Sandbox Code Playgroud)

但是,当有人发布新评论时,我是否也可以使用通配符删除所有旧密钥?我可以做这样的事情:

$redis->delete('review/itemA/*'); // or  $redis->delete('review/itemA*')
Run Code Online (Sandbox Code Playgroud)

然而它并没有奏效。

php redis phpredis

5
推荐指数
2
解决办法
2万
查看次数

Composer 需要 ext-redis

我正在尝试将 phpredis 扩展设置为我的应用程序的要求。这是我的composer.json:

"ext-redis": ">=2.2.7"
Run Code Online (Sandbox Code Playgroud)

A 也尝试过这些选项:"^2.2.7"2.2.7@dev

但我一直收到以下错误:

  Problem 1
    - The requested PHP extension ext-redis >=2.2.7 has the wrong version (2.2.8-devphp7) installed. Install or enable PHP's redis extension.
Run Code Online (Sandbox Code Playgroud)

为什么我的要求与似乎适合此版本约束的>=2.2.7实际版本不重叠?2.2.8-devphp7

php composer-php phpredis

5
推荐指数
1
解决办法
1万
查看次数

Laravel 5.5 Redis 问题 - 调用未定义的方法 Illuminate\Support\Facades\Redis::connect()

我将 Laravel 5.5 应用程序移至另一台服务器 - 我在那里使用完全相同的代码(做了 a git clone)以及完全相同的composer.json文件composer.lock(甚至NGINX配置也相同)。

当我运行我的应用程序时,出现以下错误:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Call to undefined method Illuminate\Support\Facades\Redis::connect()
Run Code Online (Sandbox Code Playgroud)

这是代码:

namespace App\Http\Controllers;
use Illuminate\Http\Request;
...
public function somefunction() {
    $redis = new \Redis();
    $redis->connect(env('REDIS_HOST')); <-------------
...
Run Code Online (Sandbox Code Playgroud)

作曲家软件包已安装,但我的系统上predis/predis没有。php-redis

在两个系统 (debian) 上都安装了 redis 并在127.0.0.1. .env两个系统在和 中使用相同的配置config/*

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Run Code Online (Sandbox Code Playgroud)

唯一不同的是,我在一个系统(旧系统)上运行php7.0,而在我运行的新系统上php7.3- 我切换到php7.0新系统以检查是否存在错误,但我仍然遇到异常。

再一次 - 在我的另一台服务器上,一切都运行良好,代码完全相同,这让我感到沮丧 - …

redis laravel phpredis predis laravel-5.5

5
推荐指数
1
解决办法
1万
查看次数

PHP Redis 会话锁定内部结构

phpredis会话锁定内部是如何工作的?它是否在内部存储一个值并不断检查它?如果我有很高的redis.session.lock_retries意愿,如果需要 10 秒才能获得锁定并且必须尝试数千次,那么会给服务器带来负载?

\n\n

以下是配置参数。

\n\n
; Should the locking be enabled? Defaults to: 0.\nredis.session.locking_enabled = 1\n; How long should the lock live (in seconds)? Defaults to: value of max_execution_time.\nredis.session.lock_expire = 60\n; How long to wait between attempts to acquire lock, in microseconds (\xc2\xb5s)?. Defaults to: 2000\nredis.session.lock_wait_time = 50000\n; Maximum number of times to retry (-1 means infinite). Defaults to: 10\nredis.session.lock_retries = 10\n
Run Code Online (Sandbox Code Playgroud)\n

php phpredis

5
推荐指数
2
解决办法
4634
查看次数

为 Laravel 7 安装和配置 PhpRedis

配置 Laravel 7 以与 PhpRedis 一起使用

前言

按照 Laravel 的建议,我在互联网上搜索并试图找出如何正确安装和使用 PhpRedis 后,我无法找到一个单一的事实来源或指南,但问题却多于答案。

我希望在社区的帮助下,在这里创建并不断改进该指南。

本指南的目标

  • 提供分步指南,以最正确和面向未来的方式在 Homestead 上为 Laravel 7 安装和配置 PhpRedis。
  • 现在解释如何使用 Redis 安装/配置了 PhpRedis。

为什么不直接使用 Predis?

根据 Laravel 7 文档,Predis 似乎已被放弃,在 Laravel 的未来版本中,它可能不再受支持。此外,PhpRedis 的性能优于 Predis。

PhpRedis vs Predis:真实生产数据的比较

参考

如何在 Ubuntu 上为 Laravel 安装 PhpRedis

Laravel 中的 PhpRedis - Redis 系列第 2 集

在全新安装 Homestead PHP7 上安装 PHP REDIS PHP7 分支

Laravel 7 Redis 文档


在 Homestead 上全新安装的 Laravel 7 上安装/配置 PhpRedis

本指南假设您在 Homestead 开发环境中使用 Laravel 7。

安装 PHPRedis …

php redis laravel phpredis laravel-7

5
推荐指数
0
解决办法
4413
查看次数

php8.2 找不到 Redis.dll

我在 Windows 计算机上使用 PHP 8.2 启动 Redis 5.3.7 时遇到困难。当我尝试启动它时,会显示一个对话框,其中包含以下消息:

“无法在动态链接库c:\Program Files\php\ext\php_redis.dll中定位过程入口点_zend_get_parameters_array_ex”

我已包含以下错误的屏幕截图:

错误截图

php-extension phpredis

5
推荐指数
1
解决办法
6643
查看次数