2011-11-14 79 views
1

我最近遇到了redis問題。我的設置如下:無法訪問我的redis實例

  • 的Ubuntu 11.11
  • Redis的2.4.2(而不是從回購,但編譯)

的事情是,我突然不能在所有訪問Redis的服務器!它啓動就好了日誌看起來是這樣的:

[23759] 14 Nov 14:37:15 - DB 0: 473 keys (0 volatile) in 512 slots HT.
[23759] 14 Nov 14:37:15 - DB 1: 2882 keys (0 volatile) in 4096 slots HT.
[23759] 14 Nov 14:37:15 - DB 4: 6 keys (0 volatile) in 8 slots HT.
[23759] 14 Nov 14:37:15 - DB 8: 6094 keys (0 volatile) in 8192 slots HT.
[23759] 14 Nov 14:37:15 - 0 clients connected (0 slaves), 26706728 bytes in use

當我嘗試使用例如連接redis-cli我會暫停。

我已經將超時設置爲0,並通過nmap檢查打開的端口,一切似乎都很好。有沒有人有類似的問題與Redis和/或Ubuntu 11.11?我懷疑暴發戶其實是問題...

回答

3

我已經在多個Ubuntu 11.11實例上編譯,安裝並大量使用Redis。看來有三件事情中的一件可能發生。

  1. Redis作爲守護程序運行。 Upstart在守護進程(後臺)過程中表現不佳。修改你的redis.conf並確保你沒有運行Redis作爲守護進程。否則,新貴會認爲這個過程會死亡,並會嘗試再次啓動,這可能會導致事情發生。
  2. 您的redis.conf存在問題,或者您沒有使用您認爲自己的redis.conf文件執行Redis。檢查你的redis.conf,並確保你已經通過綁定到IP和端口來正確啓用了TCP連接,或者你已經啓用了unix套接字。
  3. 您已將Redis配置爲在非標準端口上或通過unix套接字進行偵聽,並且redis-cli未被傳遞正確的端口或套接字。或者,您正在使用套接字,並且您正在運行的用戶redis-cli無權讀取/寫入套接字。

這裏是功能新貴劇本我在開發環境中,我將在/etc/init/redis.conf使用:https://gist.github.com/1297014

這裏是我通常在/opt/redis/redis.conf與Redis的可執行文件一起存儲Redis的配置文件(儘管存儲在/etc/redis.conf conf文件可能會更標準):https://gist.github.com/1368914

除了一些小的變化,我的開發環境使用股票redis.conf。爲了支持使用新貴來管理redis,我必須做出的唯一改變是設置daemonize no

+0

非常感謝!我會試試這個。 – saibotd

+0

關於(1):Upstart擁有「期望叉」和「期待守護進程」指令。我努力使這一切工作,但不明白爲什麼它不會。 strace運行顯示redis以守護進程形式分叉兩次,但我仍然無法弄清楚。 –