标签: phpredis

如何修复"错误:多次点击中找到的公式"?

我想安装php54-redis.

Yu:nginx Yu $ brew安装josegonzalez/php/php54-redis

==>从josegonzalez/homebrew-php安装php54-redis

错误:在多个水龙头中找到的公式:

  • 自制/ PHP/php54

  • josegonzalez/PHP/php54

请使用完全限定的名称,例如homebrew/php/php54来引用公式.

我做错了什么,这是怎么做得好的?

php macos homebrew phpredis

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

Redis如何存储关联数组?设置或哈希还是列表?

我对Redis的所有可用存储选项感到困惑.我想做一些简单的事情,我不想过度设计它.我正phpredis和我一起工作Redis v2.8.6.

我有这个简单的关联数组,我需要存储.我还需要能够通过其键检索项目并循环遍历所有项目.

$a = array(
    '12345' => array(
        'name' => 'Post A',
        'val2' => 'blah blah',
        'val3' => 'blah blah blah',
    ),
    '54321' => array(
        'name' => 'Post B',
        'val2' => 'blah blah',
        'val3' => 'blah blah blah',
    ),
    '998877' => array(
        'name' => 'Post C',
        'val2' => 'blah blah',
        'val3' => 'blah blah blah',
    )
);
Run Code Online (Sandbox Code Playgroud)

所以我到现在所做的是使用hash类型.像这样存储我的数组:

foreach ($a as $key => $value) {
    $this->redis->hSet('posts', $key, json_encode($value));
}
Run Code Online (Sandbox Code Playgroud)

就像我可以轻松地像这样访问密钥:

public function getPost($postId) …
Run Code Online (Sandbox Code Playgroud)

associative-array redis phpredis

28
推荐指数
3
解决办法
4万
查看次数

未找到“Redis”类 laravel 8,使用 phpredis

我正在使用 laravel 8,当我尝试运行时,它会抛出错误:

\n

php artsian config:clear

\n

在 laravel 上,这是我的配置值(因为我正在尝试使用 phpredis):

\n
'client' => env('REDIS_CLIENT', 'phpredis'),\n
Run Code Online (Sandbox Code Playgroud)\n

我现在可以使用 redis-cli 和 ping。不,只是我可以成功到达以下端点。

\n
    public function testRedis()\n    {\n        Redis::set('ping','pong');\n        $ping = Redis::get('ping');\n        dd($ping);\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

就打印pong成功了。

\n

但我收到的课程Redis未找到。每当我尝试奔跑时php artisan config:clear

\n

完整错误如下所示:

\n
  Class "Redis" not found\n\n  at vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:75\n     71\xe2\x96\x95      * @throws \\LogicException\n     72\xe2\x96\x95      */\n     73\xe2\x96\x95     protected function createClient(array $config)\n     74\xe2\x96\x95     {\n  \xe2\x9e\x9c  75\xe2\x96\x95         return tap(new Redis, function ($client) use ($config) {\n     76\xe2\x96\x95             if ($client instanceof …
Run Code Online (Sandbox Code Playgroud)

redis laravel phpredis

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

如何在 Laravel 5+ 中设置 PhpRedis?

背景
尝试在 运行 Apache 2.4.18、Php 7.0.14 和自制软件的 Mac OSX 本地服务器上的 Laravel 5.3 中使用PhpRedis ...无需额外(非官方)作曲家库

Redis是通过安装homebrew install redis和工作
测试的,redis-cli ping它给出PONG

PhpRedis通过安装homebrew install php70-redis
经过测试,php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }"它给出OK


设置
随着文档,这SO Laravel 4溶液我做到以下几点:

  1. aliasapp/config/app.php 中的定义从更改(或评论和添加)
    'Redis' => 'Illuminate\Support\Facades\Redis'

    'LRedis' => 'Illuminate\Support\Facades\Redis'
  2. 将客户端定义添加到redisconfig/database.php 中的数据库定义
    'client' => 'phpredis',
  3. 运行composer dump-autoload …

redis laravel phpredis laravel-5 laravel-5.3

11
推荐指数
1
解决办法
4181
查看次数

如何在Travis上启用PHP redis扩展

我正在运行Travis CI来运行我的测试.我正在使用php v5.6的Trusty容器.

这是我的整个.travis.yml文件:

language: php

dist: trusty

php:
  - '5.4'

before_script:
  - phpenv config-rm xdebug.ini
  - before_script: echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini

sudo: required

install:
  - npm install -g gulp
  - composer install

env:
  - APP_ENV=circleci

script:
  - gulp test
Run Code Online (Sandbox Code Playgroud)

before_script:语法是直接从复制的特拉维斯文档,但我建立失败,一个作曲家错误说:

- The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis extension.
Run Code Online (Sandbox Code Playgroud)

php continuous-integration travis-ci phpredis

10
推荐指数
1
解决办法
1161
查看次数

如何安装php 7的redis扩展

推荐此链接https://anton.logvinenko.name/en/blog/how-to-install-redis-and-redis-php-client.html

并完成以下步骤

PHP 7的PhpRedis(如果您有不同的PHP版本,请跳过它)

安装所需的包

apt-get install php7.0-dev
Run Code Online (Sandbox Code Playgroud)

下载PhpRedis

cd /tmp
wget https://github.com/phpredis/phpredis/archive/php7.zip -O phpredis.zip
Run Code Online (Sandbox Code Playgroud)

但是,找不到安装https://github.com/phpredis/phpredis/archive/php7.zip文件.

php redis phpredis php-7

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

php-redis - 有没有办法在Redis中存储PHP对象而不进行序列化?

我试图将用户的请求URL作为密钥存储,并将与该密钥对应的PHP对象存储为Redis中的值.我尝试了以下方法:

$redisClient = new Redis();
$redisClient->connect('localhost', 6379);
$redisClient->set($_SERVER['REQUEST_URI'], $this->page);
$redisTest = $redisClient->get($_SERVER['REQUEST_URI']);
var_dump($redisTest);
Run Code Online (Sandbox Code Playgroud)

但是,使用此代码时,存储在Redis中的URL键的值是类型,string其值等于"Object"而不是实际的PHP对象.有没有办法存储PHP对象而不进行序列化?

php redis phpredis

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

PHP Redis超时,连接时读取错误?

"PHP致命错误:未捕获异常'RedisException',消息'连接时读取错误'"

这里的驱动程序是phpredis

$redis->blpop('a', 0);
Run Code Online (Sandbox Code Playgroud)

这总是在1分钟后超时.我的redis.conf说超时0并$redis->getOption(Redis::OPT_READ_TIMEOUT)返回double(0)

如果我这样做,它永远不会超时 $redis->setOption(Redis::OPT_READ_TIMEOUT, -1);

为什么我需要-1?Redis文档timeout 0在redis.conf中说永远不会让我失望.

"默认情况下,如果客户端闲置很多秒,则Redis的最新版本不会关闭与客户端的连接:连接将永远保持打开状态."

php redis phpredis

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

如何使用php redis获取redis中的所有密钥?

我使用https://github.com/nicolasff/phpredis 扩展来访问redis.我想从php代码获取redis中的所有密钥.我试过以下代码

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$allKeys = $redis->keys('*');
print_r($allKeys); // nothing here
Run Code Online (Sandbox Code Playgroud)

但是在shell中的命令给出了结果

127.0.0.1:6379> KEYS *
"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"
Run Code Online (Sandbox Code Playgroud)

我可以通过php脚本以下列方式设置密钥和数据

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set(session_id(), json_encode(array('uname'=>'messi fan')));
Run Code Online (Sandbox Code Playgroud)

怎么KEYS *从redis使用phpredis?

php redis phpredis

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

名称或服务未知[tcp:// redis:6379]

我在使用laravel设置redis缓存时遇到问题.我在我的本地机器上有一个redis服务器runnig:

在此输入图像描述

我的.env:

在此输入图像描述

我准备好并在端口6379上使用localhost:

在此输入图像描述

有人告诉我这里发生了什么事?在此输入图像描述

php redis-cache phpredis predis laravel-5

7
推荐指数
1
解决办法
6014
查看次数