目前的数据是redis,重启服务器后消失一次。昨天之前是正常的。今天突然出现了。到目前为止没有对配置进行任何更改。所有设置只是默认设置。
更新: 所有更新仅反射(reflect)在该 session 的 redis 客户端中。重新启动后,我转到了旧值本身。
发现错误:
不幸的是我是redis的新手。所以我不知道redis的持久性。我做了 bgsave
实现并且我也知道快照
最佳答案
首先,我们需要澄清一下您所说的意外情况。
通过
All the updates are reflected in redis client only for that session. Once restart it went to the old value itself.
你是说重启客户端还是服务端?数据是否从客户端的服务器消失了? “旧值”从何而来?
现在介绍如何获取有关可能出现的问题的更多信息,并解决服务器重启时数据从服务器 消失的情况。
由于可用信息有限,这听起来数据并未持久保存到磁盘。可能有多种原因。
打开与 Redis 实例的 redis-cli session (redis-cli 如果在服务器本身上,否则您需要将主机和端口传递给它)。
接下来运行命令 info persistence。这将告诉您/我们当 Redis 尝试将数据写入文件系统时是否出现问题。如果上次保存的状态不是“ok”,则您的进程无法将转储文件写入(默认情况下)/var/lib/redis/dump.rdb。在这种情况下,我预计会出现权限问题。否则可能是磁盘空间问题。
假设没有空间问题,请检查目录/var/lib/redis 及其中文件的权限。如果它们与运行 redis-server 的用户不匹配,您需要通过 chown -R redisuser:redisgroup/var/lib/redis 更正它们,其中 redisuser 和 redisgroup 与运行 redis- 的用户匹配服务器。完成后,返回到 CLI 并发出 BGSAVE。等待几秒钟,然后重新运行 info persistence 命令以验证您是否能够保存。
如果仍然失败,我建议在终端中运行 redis-server 以查看输出,然后重新运行保存,以便您可以查看报告的错误。如果您记录了此内容,请检查日志中的错误。
如果保存成功,则数据正在由服务器存储,并且在服务器端重启后仍然存在。如果是这种情况,并且当客户端重新启动时数据从客户端“消失”,我们将需要查看来自客户端的代码以确定它到底在做什么。
干杯, 账单
关于redis - 服务器重启后找不到redis数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24888519/
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除