问题标签 [phpredis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
612 浏览

php - phpredis:运行脚本调用未定义函数 new Redis() 时出错

环境:

  • CentOS 6.5
  • php5.5.3 / php-fpm5.5.3
  • nginx 1.0.15
  • php-redis 2.2.8

还在 php.ini 中添加了 extension_dir 和扩展设置

然后重启php-fpm & nginx的服务

我已经确认 redis 已在 phpinfo() 中启用/加载

步:

我正在尝试像这样运行 php 脚本

得到错误:

但是当我尝试在 php Interactive shell 模式下运行相同的命令时,它运行良好。

为什么?

更新:

我已经测试了这样的脚本:

然后我已经加载了扩展redis

它显示类 Redis 存在但仍然出现错误

添加dl("redis.so");和输出:

0 投票
1 回答
5253 浏览

php - 在 PHPRedis 会话上设置过期

我让 Redis 为我通过 PHPRedis 访问的几个子域运行共享会话存储。会话 cookie 的生命周期很长,因此用户不必经常登录,但我发现我必须大约每半小时登录一次。

检查 Redis 实例显示每个键的 TTL 默认设置得非常低(大约 1500 秒)。PHPRedis 文档有这样的说法:

会话的生命周期以秒表示,并存储在 INI 变量“session.gc_maxlifetime”中。您可以使用 ini_set() 更改它。

目前尚不清楚这是指 cookie 的生命周期还是 Redis 密钥的 TTL。我将session.cookie_lifetime和都设置session.gc_maxlifetime为 100000 秒来运行测试,但看起来新的会话条目仍然以 Redis 中的 1500 秒 TTL 开始。

直接和Redis交互的时候如何设置TTL已经很清楚了,但是我不知道如何通过PHPRedis的会话管理器来设置这个值。有小费吗?

0 投票
2 回答
4028 浏览

ubuntu-14.04 - 无法使用 Ubuntu 14.04 在 PHP7 上安装 PHPREDIS

我在 ubuntu 14.04 上使用 PHP7。这是来自终端的我的 PHP 版本信息(使用命令 PHP -v)。

我从 php7 分支(https://github.com/phpredis/phpredis/tree/php7)下载了 phpredis 并按照自述文件中提到的以下命令进行安装。

但是,我在执行命令后出现以下错误make && make install

我还在 PHPREDIS github 存储库 ( https://github.com/phpredis/phpredis/issues/958 ) 上创建了一个关于此的问题。

不知道这里出了什么问题。

0 投票
0 回答
98 浏览

php - phpredis 中的 redis.conf 在哪里

我是 phpredis 的新手,很困惑 redis.conf 文件在 nicolasff 的存储库中的位置。它不在配置文件中。当我通过 tar.gz 安装 redis 时,有一个名为 redis.conf 的文件很有帮助。

修改配置文件后是否需要重新制作redis?

这是存储库的 github 链接。 https://github.com/nicolasff/phpredis

0 投票
1 回答
1496 浏览

php - 无法订阅 Redis 频道 Laravel 5.2

我正在关注 Laravel 办公室 Redis 指南,但我遇到了一些问题 https://laravel.com/docs/5.2/redis#pubsub

在控制台中运行“-> php artisan redis:subscribe”时创建命令后,出现以下错误

我无法听 Redis Chanel。

Redis 发布通道方法工作正常。要检查这一点。在控制台中,我输入“-> redis-cli”,然后“订阅 mychannel”。在刷新浏览器时,我在控制台中获取发布数据。

我无法通过 Laravel 订阅。

我也尝试过使用通配符

但浏览器不断加载,我没有得到任何数据。我也尝试在控制器中创建一个方法

这个 subscribeChannel 方法给了我以下错误

我在 config/database.php 中的配置如下

寻求帮助谢谢

0 投票
6 回答
26685 浏览

redis - redis cli删除多个key

我已经在 centos 中安装了 Redis,并且我有多个这样的 redis 键,

如何Product:*:* 使用 CLI 删除所有内容?

Redis 版本:3.2.4 [我猜是最新的]

谢谢!

0 投票
1 回答
430 浏览

redis - phpredis调试方法不起作用

我最近将 php redis 版本更新为 3.0.0-rc1 之后 $data = $redis->debug('Key'); var_dump($data); 给出输出 bool(false) 是调试方法被禁用或需要做任何事情来使该方法工作

0 投票
1 回答
550 浏览

redis - Redis 阿拉伯语解码

我使用带有 PHP 的 Redis,带有 phpRedis 连接器。当我用阿拉伯语保存一个单词时,我无法检索这个单词,它返回编码值。

在 redis 中,如果我连接,问题就解决了: >redis-cli --raw

这里的例子:

amic:/var/www/core-bitercash$ redis-cli 127.0.0.1:6379> 设置 xx جيد OK 127.0.0.1:6379> 获取 xx "\xd8\xac\xd9\x8a\xd8\xaf"

ami:/var/www/core-bitercash$ redis-cli --raw 127.0.0.1:6379> 获取 xx جيد 127.0.0.1:6379>

是的,它可以工作,但是对于 phpRedis 是行不通的。是回报:جيد

redis 中保存的值。

我不知道如何连接 phpRedis lib 的 --raw 选项或如何解码 php.ini 中的文本“جيؔ。

0 投票
1 回答
216 浏览

php - Redis 存储在数组中

我有多个 redis 实例,我想通过 php 访问它们。我正在使用 phpredis 7。由于我有多个函数可以连接到不同的服务器,因此我将它们存储在一个数组中。

该数组包含:

现在我想像这样使用它:

我已经尝试过,但没有真正发生。有人可以提示我哪里错了吗?

0 投票
3 回答
6893 浏览

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

有没有比EXISTS, 更快的方法来检查 redis 中是否存在密钥?

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

有什么想法吗?