如何使用Predis和redis-cli连接到相同的redis数据库?

时间:2015-05-17 14:28:14

标签: php redis predis

在使用redis时,我注意到,连接Predis和redis-cli会导致名称为db0的不同键空间。两个连接都是在tcp:// localhost:6379上运行的redis服务器上建立的。 我可以看到转储在不同的位置。

这里是两个实例的信息:

来自redis-cli:info server

# Server
redis_version:2.8.19
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:70633d1af7244f5e
redis_mode:standalone
os:Darwin 14.3.0 x86_64
arch_bits:64
multiplexing_api:kqueue
gcc_version:4.2.1
process_id:517
run_id:900bab4b7a89ed6616bababd8c7d443b7d53f6a8
tcp_port:6379
uptime_in_seconds:136898
uptime_in_days:1
hz:10
lru_clock:5781598
config_file:/usr/local/etc/redis.conf

来自predis,info

  'Server' => 
    array (size=17)
      'redis_version' => string '2.8.19' (length=6)
      'redis_git_sha1' => string '00000000' (length=8)
      'redis_git_dirty' => string '0' (length=1)
      'redis_build_id' => string '70633d1af7244f5e' (length=16)
      'redis_mode' => string 'standalone' (length=10)
      'os' => string 'Darwin 14.3.0 x86_64' (length=20)
      'arch_bits' => string '64' (length=2)
      'multiplexing_api' => string 'kqueue' (length=6)
      'gcc_version' => string '4.2.1' (length=5)
      'process_id' => string '8894' (length=4)
      'run_id' => string 'fff57e23438c261c83dc0e91ca4829a743d5919a' (length=40)
      'tcp_port' => string '6379' (length=4)
      'uptime_in_seconds' => string '5621' (length=4)
      'uptime_in_days' => string '0' (length=1)
      'hz' => string '10' (length=2)
      'lru_clock' => string '5781216' (length=7)
      'config_file' => string '' (length=0)

2 个答案:

答案 0 :(得分:1)

run_id:900bab4b7a89ed6616bababd8c7d443b7d53f6a8
'run_id' => string 'fff57e23438c261c83dc0e91ca4829a743d5919a' (length=40)

以上是您与两台不同的Redis服务器连接的证明,所以答案很简单,就是要解决一个不同的问题,即理解它为什么会发生。在检查了显而易见的原因后,如果您没有找到任何线索,请检查您是否正在与一台收听IPv6地址的服务器通话,另一台收听IPv4地址,同一端口。

答案 1 :(得分:0)

解决方案比我想象的简单。显然我运行了另一台redis-server,因为在通过自制软件安装时,我无意中添加了一个plist文件来默认运行redis守护进程。

使用

检查所有redis实例
ps aux | grep "redis"

澄清了这件事。