我正在学习Redis。我可以使用Ruby Client for Redis设置和获取键值对。
我现在正尝试从自定义路径存储和加载dump.rdb。 我执行了以下步骤:
但是,当我重新启动redis服务器并运行相同的ruby脚本(再次以编程方式设置dump.rdb的目录)并尝试加载数据时,它不会这样做。
在配置中设置'dir'参数后,有没有办法以编程方式让redis服务器加载dump.rdb ?
我查看了Redis Ignoring directory in redis.conf,并尝试在Google上搜索此内容。始终可以选择在redis.conf中设置dump.rdb的路径,但我希望以编程方式进行。
我的Ruby代码如下:
require 'redis'
client = Redis.new
client.config('set', 'dir', '/tmp')
puts 'Enter load(to load existing data) or new(to create new data)'
print 'prompt>'
command = gets.chomp
if command == 'new'
client.flushdb
client.set('key1', 'value1')
client.set('key2', 'value2')
client.save
else
puts client.get('key1')
puts client.get('key2')
end
以下是执行ruby脚本的输出:
laptop:~/ruby/workspace$ ruby test.rb
Enter load(to load existing data) or new(to create new data)
prompt>new
laptop:~/ruby/workspace$ ruby test.rb
Enter load(to load existing data) or new(to create new data)
prompt>load
value1
value2
# Now i restart redis-server
laptop:~/ruby/workspace$ ruby test.rb
Enter load(to load existing data) or new(to create new data)
prompt>load
# No output is printed
软件详情:
如果您需要我的任何其他信息,请告诉我。
答案 0 :(得分:0)
我相信你在加载“自定义rdb”方面的意思是使用“config set”命令来设置转储文件的路径。请注意,它需要与redis守护程序在同一主机上才能工作。一旦使用上述命令指定它,您的工作就不会完成。除启动时,Redis不从文件系统读取。
因此,为了做到这一点,您需要有一个重启Redis的管理程序进程。然后,你需要
即使这样,它也行不通,因为在启动时服务器将从磁盘读取配置。我不知道Redis将其运行时配置保存到磁盘的命令,并且不相信它存在。
我不确定你为什么要这样做,但我相信如果没有在Redis之外进行编码来管理,它将无法工作。也许如果你澄清了为什么你认为你需要这样做,我们可以提供更好的帮助。
如果不编写非Redis代码,您可以运行多个实例,每个实例都配置为您需要使用的转储文件;然后在客户端选择哪一个并使用适当的一个。