2015-05-17 42 views
0

在使用redis時,我注意到,連接Predis和redis-cli會導致名稱爲db0的不同密鑰空間。這兩個連接都是在tcp:// localhost:6379上運行的redis服務器上進行的。 我可以看到垃圾箱位於不同的位置。如何使用Predis和redis-cli連接到相同的redis db?

下面是兩個實例信息:

從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) 

回答

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

以上是公關您正在連接兩個不同的Redis服務器,所以答案很簡單,就是有一個不同的問題需要解決,也就是要理解它發生的原因。在檢查了顯而易見的原因之後,如果您沒有發現任何線索,請檢查您是否正在與偵聽IPv6地址的一臺服務器通話,以及是否正在偵聽同一端口的IPv4地址。

+0

我注意到,但忘記了通過IPv6連接到其中一個的可能性。將檢查出來。 –

+0

添加了解決我的問題的新答案。有多個實例在運行。 –

0

該解決方案比我想象的更簡單。顯然我有另一個redis服務器運行,因爲通過自制程序安裝時,我無意中添加了一個plist文件來默認運行redis守護進程。

檢查所有Redis的情況下與

ps aux | grep "redis" 

清理此事。

+0

不可能有多個實例在同一個ip/address中運行,所以唯一的選擇是你有一個在ipv4地址中運行綁定,一個在ipv6中,因爲在兩個INFO輸出中端口是相同的6379)。可能你在一側使用了「localhost」,而在另一側使用了「127.0.0.1」,第一次解析爲ipv6回送地址。 – antirez

相關問題