草庐IT

php - 为什么我的 Predis 客户端的 PHPUnit 模拟不符合我的预期?

我正在尝试在PHPUnit测试中模拟Predis客户端。当我调用我试图模拟的方法时,在测试结束时PHPUnit告诉我没有达到预期。这是重现我的问题的代码示例:classMockRedisTestextends\PHPUnit_Framework_TestCase{private$mockRedis;publicfunctiontestMockRedis(){$mockRedis=$this->getMock('Predis\\Client');$mockRedis->expects($this->once())->method("exists")->with($this->equalT

laravel - 我在 Laravel 5.2 中收到错误 "Class ' Predis\Client' not found"

我想在laravel5.2中使用Redis,但是,我收到错误消息,例如找不到类'Predis\Client',我该如何解决。 最佳答案 首先下载REDIS到您的系统(如果您尚未安装它)。转到您下载redis的文件夹并运行此命令:cdyour-redis-folder-namemake转到您的项目目录并安装composer:composer需要predis/predis转到您的.env文件并添加队列驱动程序:QUEUE_DRIVER=redis使用Mail::queue()通过队列发送邮件。参见Doc.然后在您的终端运行:phpart

laravel - 我在 Laravel 5.2 中收到错误 "Class ' Predis\Client' not found"

我想在laravel5.2中使用Redis,但是,我收到错误消息,例如找不到类'Predis\Client',我该如何解决。 最佳答案 首先下载REDIS到您的系统(如果您尚未安装它)。转到您下载redis的文件夹并运行此命令:cdyour-redis-folder-namemake转到您的项目目录并安装composer:composer需要predis/predis转到您的.env文件并添加队列驱动程序:QUEUE_DRIVER=redis使用Mail::queue()通过队列发送邮件。参见Doc.然后在您的终端运行:phpart

php - Predis 给出 'Error while reading line from server'

我正在使用predis,它订阅了一个channel并正在收听。它会抛出以下错误(如下)并在60秒后死掉。这肯定不是我的网络服务器错误或超时。有一个类似的问题正在讨论here.无法获得太多。我尝试将predisconf文件中的connection_timeout设置为0,但没有多大帮助。此外,如果我继续使用(向它发送数据并由它处理)worker,它也不会给出任何错误。所以它可能在某处超时,这也是相关的。这是我的代码片段,它可能会产生错误,因为如果将数据提供给工作人员,它会运行此代码并继续,之后不会产生任何错误。$pubsub=$redis->pubSub();$pubsub->subsc

php - Predis 给出 'Error while reading line from server'

我正在使用predis,它订阅了一个channel并正在收听。它会抛出以下错误(如下)并在60秒后死掉。这肯定不是我的网络服务器错误或超时。有一个类似的问题正在讨论here.无法获得太多。我尝试将predisconf文件中的connection_timeout设置为0,但没有多大帮助。此外,如果我继续使用(向它发送数据并由它处理)worker,它也不会给出任何错误。所以它可能在某处超时,这也是相关的。这是我的代码片段,它可能会产生错误,因为如果将数据提供给工作人员,它会运行此代码并继续,之后不会产生任何错误。$pubsub=$redis->pubSub();$pubsub->subsc

PHP Redis (predis) 计数器与唯一的当前观众

我想知道如何使用Redis实现唯一访客计数器超时为1小时。我有一个小网上商店,我想显示目前有多少人正在查看一篇文章。最好的方法是什么?我正在使用Predis提前致谢 最佳答案 你需要做两件事:为每个访问者生成一个唯一的ID(他们aremanywaystodoit)使用RedisSET或ZSET来存储这些ID并添加过期机制。方法#1:SET+SCARD+EXPIRE解决方案SET名称可能类似于[article_id]:[current_hour_timestamp],每次您在其中SADD访问者id时,执行EXPIRE。每套将在一定时间

laravel - 如何修复 "Predis\Response\ServerException ERR syntax error"?

看来我的redis服务器不工作了,谁能解决这个问题?提前谢谢你publicstaticfunctiongetActiveUser($len=10){$key=config('rket.active_key');$users=Redis::zrevrange($key,0,$len,'WITHSOCRES');if(empty($users)){returnfalse;}return$users;}这就是问题发生的地方。 最佳答案 'ServerException'表示服务器或与服务器的连接出现问题。检查redis服务器是否正在运行,

redis - Predis - 从连接池中删除服务器

比如说,我在predis连接池中有N个服务器。我发现当其中一台服务器宕机时,predis不起作用(即,如果任何服务器Si宕机,newpredis/client(s1,s2,...)不会成功返回)。首先,需要手动删除那个故障服务器的条目,并且只有在这个predis恢复工作之后。因为,predis声称使用一致性哈希,predis不应该自动检测哪个服务器没有响应(&已失败),并将存储在失败服务器上的key分发给其他工作服务器吗? 最佳答案 Predis确实使用了一致性哈希,但您需要确保池中的所有服务器都已启动并做出响应。监视服务器的可用性

configuration - Laravel 5.2 中的 Predis 配置

在这种情况下,我对Laravel5.2项目中的Predis设置(Redis的PHP客户端)感到困惑。documentation说你需要将它自动加载到composer中以在整个应用程序中使用它而不是在每个页面上加载它......怎么做?在哪里?什么?我需要添加或写吗?我似乎无法弄清楚,因为我对安装和服务器配置知之甚少..这就是我的意思。这需要去我假设的某个地方require'Predis/Autoloader.php';Predis\Autoloader::register();谢谢 最佳答案 另一种方法从https://github

php - 如何在Redis,Predis中获取相关数据?

我开发的Web应用程序使用mysql作为后端,使用redis作为缓存服务器,我将记录存储在mysql数据库和redis(使用predis库)中。在从数据库中获取记录的过程中,首先检查redis中是否存在key(主键即id),如果是则直接从redis中获取数据,否则到数据库中获取数据。假设数据库表是帖子、评论。在存储帖子、评论详情的数据时,使用帖子、评论表来存储相应的数据。评论表具有名为post_id的帖子表的外键在redis服务器,对帖子、评论和不同字段都使用散列键(id),对帖子、评论如post_{id}strong>用于帖子,comment_{id}用于评论和存储值,使用allpo