3
這是處理Redis連接池與Sinatra Synchrony的正確方法嗎?Sinatra與Redis連接池同步
我的Gemfile看起來是這樣的:
gem 'sinatra-synchrony'
gem 'hiredis'
gem 'redis'
的西納特拉服務器文件使用了經典風格的方法,一般像這樣:
require 'sinatra'
require 'sinatra/synchrony'
require 'redis/connection/hiredis'
require 'redis/connection/synchrony'
require 'redis'
redis = EventMachine::Synchrony::ConnectionPool.new(size: 5) do
Redis.new(path: '/tmp/redis.sock')
end
get/do
# lots of redis reads and writes
end
我再推出同樣的服務器應用程序的多個實例,每個都在不同的端口下,並使用nginx在它們之間進行負載平衡。
這是將Redis和Sinatra服務器連接在一起的合適解決方案嗎?
感謝這一段代碼,但是它有很大的缺點 - 我不能理解@ redis.multi {...},它只是掛起。我認爲這是由於使用不同的連接來啓動端執行命令... – 2012-03-10 11:25:37
我剛剛更新了示例以添加多個呼叫,它對我來說非常適合。你可能做錯了,你需要使用連接作爲參數傳遞給塊。 – Schmurfy 2012-03-12 15:14:08