提问者:小点点

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


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

以下是来自两个实例的信息:

从redis-cli:信息服务器

# 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,信息

  '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个答案

匿名用户

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

上面是你连接两个不同的Redis服务器的证明,所以答案很简单,有一个不同的问题需要解决,即理解为什么会发生。在检查了明显的原因之后,如果你没有找到任何线索,请检查你是否可能正在与一个监听IPv6地址的服务器和一个监听IPv4地址的服务器交谈,同一个端口。

匿名用户

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

检查所有redis实例

ps aux | grep "redis"

澄清了这件事。