草庐IT

ubuntu - 无法访问我的 redis 实例

coder 2023-07-19 原文

最近遇到redis的问题。我的设置如下:

  • Ubuntu 11.11
  • Redis 2.4.2(不是来自 repo,而是编译的)

问题是,我突然完全无法访问redis服务器!它启动得很好,日志看起来像这样:

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

一旦我尝试连接,例如redis-cli我会超时。

我已经将超时设置为 0 并通过 nmap 检查了打开的端口,一切似乎都很好。有人对 redis 和/或 Ubuntu 11.11 有类似的问题吗?我怀疑 Upstart 实际上是问题所在......

最佳答案

我已经在多个 Ubuntu 11.11 实例上编译、安装并大量使用了 Redis。似乎可能会发生以下三种情况之一。

  1. Redis 作为守护进程运行。 Upstart 不能很好地处理守护进程(后台)进程。修改您的 redis.conf 并确保您没有将 Redis 作为守护进程运行。否则 upstart 会认为该进程已终止并会尝试重新启动它,这可能会把事情搞砸。
  2. 您的 redis.conf 有问题,或者您没有使用您认为的 redis.conf 文件执行 Redis。检查您的 redis.conf 并确保您已通过绑定(bind)到 IP 和端口正确启用 TCP 连接,或者您已启用 unix 套接字。
  3. 您已将 Redis 配置为在非标准端口上或通过 unix 套接字进行监听,并且 redis-cli 未被传递到正确的端口或套接字。或者,您正在使用套接字,而您正在运行 redis-cli 的用户没有读取/写入套接字的权限。

这是我在我的开发环境中使用的正常运行的 upstart 脚本,我将其放在 /etc/init/redis.conf 中:https://gist.github.com/1297014

这是我通常存储在 /opt/redis/redis.conf 的 Redis 配置文件以及 redis 可执行文件(尽管将 conf 文件存储在 /etc/redis.conf 可能会更标准):https://gist.github.com/1368914

除了一些小改动外,我的开发环境还使用了常用的 redis.conf。为了支持使用 upstart 来管理 redis,我必须做的唯一更改是设置 daemonize no

关于ubuntu - 无法访问我的 redis 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8122463/

有关ubuntu - 无法访问我的 redis 实例的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  7. ruby 正则表达式 - 如何替换字符串中匹配项的第 n 个实例 - 2

    在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg

  8. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  9. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  10. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

随机推荐