我在學習Redis。我可以使用Ruby Client for Redis設置和獲取關鍵值對。Redis:如何以編程方式在ruby客戶端加載dump.rdb
我現在試圖從自定義路徑存儲和加載dump.rdb。 我執行以下步驟:
- 我編程設置爲dump.rdb目錄在我的Ruby腳本。
- 然後我可以選擇創建新數據或加載現有數據。
- 我在第一次執行ruby腳本時創建了新的數據。
- 我再次運行我的紅寶石腳本並加載現有的數據。產量如預期。
但是,當我重新啓動redis服務器並運行相同的ruby腳本(它再次以編程方式設置dump.rdb的目錄)並嘗試加載數據時,它不這樣做。
有沒有一種方法以編程方式獲取redis服務器加載dump.rdb後,我在配置中設置'dir'參數?
我看了看Redis Ignoring directory in redis.conf,並試圖在谷歌搜索這個。總是可以選擇在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
軟件詳細信息:
- 操作系統:Ubuntu Linux操作系統的12.04 64 bit
- Redis版本2.6.9在默認配置下運行本地主機
- 紅寶石:版本1.9.3p327(2012年11月10日修訂37606)x86_64的Linux的]
請讓我知道如果你需要從我的一部分的任何其他信息。
對於遲到的回覆,我表示歉意。我認爲你的解決方案有多個redis實例,每個配置爲不同的dump.rdb將適用於我。 – user1290793 2013-03-05 19:27:58