标签: predis

如何通过predis刷新所有redis节点?

我试图测试我的缓存是用redis集群实现的(集群服务器不是客户端).每次运行单元测试时我都必须刷新redis.当我尝试运行flushdb命令时出现此错误:无法使用带有redis-cluster的"FLUSHDB".似乎我只能在设置插槽时才能在集群模式下运行flushdb命令,但我不知道该怎么做.(我已经覆盖了laravel的redis包装器,所以laravel不是这样的情况如果你了解我如何使用predis我可以采用laravel)

redis predis

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

作曲家更新后SncRedisExtension Factory中的ClassNotFoundException"来自命名空间"Predis\Profile"

今天更新作曲家包后,我收到错误消息.

ClassNotFoundException in SncRedisExtension.php line 158:
Attempted to load class "Factory" from namespace "Predis\Profile".
Did you forget a "use" statement for "Buzz\Message\Factory\Factory"?
Run Code Online (Sandbox Code Playgroud)

这个配置工作了一段时间 - 现在停止,我的身边没有任何变化.

这是我的Composer.json包

     "php": ">=5.3.3",
    "symfony/symfony": "2.6.*",
    "doctrine/orm": "~2.2,>=2.2.3,<2.5",
    "doctrine/dbal": "<2.5",
    "doctrine/doctrine-bundle": "~1.2",
    "twig/extensions": "~1.0",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~3.0,>=3.0.12",
    "sensio/framework-extra-bundle": "~3.0,>=3.0.2",

    "stof/doctrine-extensions-bundle": "~1.1@dev",
    "a2lix/translation-form-bundle": "1.*@dev",

    "html2text/html2text": "dev-master",

    "liuggio/statsd-client-bundle": "1.6.*",

    "weotch/phpthumb": "dev-master",

    "egeloen/google-map-bundle": "*",
    "oh/google-map-form-type-bundle": "dev-master",
    "meenie/javascript-packer": "dev-master",
    "natxet/CssMin": "dev-master",
    "apy/datagrid-bundle": "dev-master",

    "webit/sms-common": "dev-master",
    "webit/smsapi": "dev-master",
    "webit/smsapi-bundle": "dev-master",

    "ddeboer/data-import": "dev-master",
    "endroid/qrcode": "1.*@dev",
    "knplabs/knp-snappy-bundle": "^1.2", …
Run Code Online (Sandbox Code Playgroud)

php symfony predis

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

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

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

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

对此有什么想法吗?

php redis phpredis predis

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

Predis超时与高流量站点

我正在运行一个流量高峰的网站(大约10k在线用户),当网站超过大约7k在线用户时我和Predis面临这个错误:

PHP Fatal error:  Uncaught exception 'Predis\\Connection\\ConnectionException' with message 'Connection timed out [tcp://127.0.0.1:6379]'
Run Code Online (Sandbox Code Playgroud)

服务器是Intel Xeon 3.4GHz,32GB RAM和SSD磁盘,nginx用于静态内容,apache和mysql.内存消耗从不超过9GB,峰值中的CPU负载为4.

我没有看到PHP的内存错误,MySQL也没有消失,只有这个Redis错误.我把超时0和?read_write_timeout = 0放在一起没有运气.你能帮助我吗?

谢谢,抱歉我的英文!

php redis predis

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

PHP Predis:如何获取/删除包含特殊字符的键?

我需要删除一个包含一些特殊键的键(在我的例子中是方括号):

我执行以下操作,但不起作用:

$this->redis;    
$keys = $this->redis->keys("*");
foreach ($keys as $key) {

    // keys are in the following format:   
    //    vir3_data_cache[zones_cdc_shifting_series_2013_5][1]

    $this->redis->del($key);
    // no key was deleted
}
Run Code Online (Sandbox Code Playgroud)

我也尝试引用密钥,但没有成功:

$this->redis;    
$keys = $this->redis->keys("*");
foreach ($keys as $key) {

    // keys are in the following format:   
    //    vir3_data_cache[zones_cdc_shifting_series_2013_5][1]

    $quotedKey = addslashes(addslashes($key));
    $this->redis->del($quotedKey);
    // no key was deleted
}
Run Code Online (Sandbox Code Playgroud)

php predis

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

Predis-如何将数组与zadd函数一起使用?

我刚开始使用Predis进行Redis迁移,但是我很难让zadd函数与数组一起使用。

此代码有效:

foreach ($userIndexArr as $row) {
  $usernames[] = 0;
  $usernames[] = $row['username']; 
  $result = $this->cache->zadd('@person', 0, $row['username']);
}
Run Code Online (Sandbox Code Playgroud)

这不是:

foreach ($userIndexArr as $row) {
  $usernames[] = 0;
  $usernames[] = $row['username']; 
}
try {
    $result = $this->cache->zadd('@person', $usernames);
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}           
Run Code Online (Sandbox Code Playgroud)

并且不会引发任何错误。任何帮助深表感谢!

-J

php caching redis predis

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

NOAUTH需要身份验证.Laravel + Redis

我收到错误NOAUTH需要身份验证.我的laravel版本是5.3,我使用predis 1.1.1连接redis.

在etc/redis/redis.conf我有:

bind 127.0.0.1
requirepass somepassword
Run Code Online (Sandbox Code Playgroud)

在.env文件中我有

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

在config/database.php我有:

'redis' => [

        'cluster' => false,

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],
Run Code Online (Sandbox Code Playgroud)

我通过以下方式连接redis:

self::$_db = \Redis::connection('default');
Run Code Online (Sandbox Code Playgroud)

并使用它像:

self::$_db->pipeline(function ($pipe) use ($profile, $time,$type, $id) {
            $pipe->zadd(self::getProfileKey($profile, $type), $time, $id);
            $pipe->zadd(self::getProfileKey($profile), $time, $type . ':' . $id);
            $pipe->zadd(self::getModelKey($type,$id) . '::favoritedBy', $time, $profile->profile_id);
        });
Run Code Online (Sandbox Code Playgroud)

因此,当我注释掉requirepass并将密码发送为null时,它可以工作,但它不起作用,并NOAUTH Authentication required.在密码到位时抛出错误.我需要根据我的项目要求设置密码.请帮忙.提前致谢.

redis predis laravel-5.3

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

在 PHP 中删除 Redis 中的所有键

我能够使用 来刷新终端redis-cli flushdb中的所有按键。我已经搜索了一段时间,花了我一个小时才找到在php中执行此操作的简单命令。

我在 stackoverflow 上没有找到它,所以我想发布它以节省某人的宝贵时间。

使用的库:Predis

php redis laravel predis

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

如何在共享主机上安装Redis?

我正在开发一个 Laravel 项目,并使用 Predis 来缓存数据库查询。现在我必须在我的服务器上安装 Redis。是否可以在共享主机上安装 Redis?

php redis laravel predis

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万
查看次数

标签 统计

predis ×10

redis ×8

php ×7

laravel ×3

phpredis ×2

caching ×1

laravel-5.3 ×1

laravel-5.5 ×1

symfony ×1