Drop memcached and use dalli as the memcache client

This commit is contained in:
Tom Hughes 2013-09-22 15:57:22 +01:00
parent 42fa563e01
commit 255b0b9425
7 changed files with 10 additions and 40 deletions

View file

@ -77,8 +77,9 @@ gem 'SystemTimer', '>= 1.1.3', :require => 'system_timer', :platforms => :ruby_1
# Load httpclient for SOAP support for Quova GeoIP queries
gem 'httpclient'
# Load memcache in case we are using it
gem 'memcached', '>= 1.4.1'
# Load memcache client in case we are using it
gem 'dalli'
gem 'kgio'
# Gems useful for development
group :development do

View file

@ -45,6 +45,7 @@ GEM
coffee-script-source (1.6.3)
composite_primary_keys (6.0.0)
activerecord (>= 4.0.0)
dalli (2.6.4)
deadlock_retry (1.2.0)
dynamic_form (1.1.4)
ejs (1.1.1)
@ -70,11 +71,11 @@ GEM
jsonify (< 0.4.0)
jwt (0.1.8)
multi_json (>= 1.5)
kgio (2.8.1)
libxml-ruby (2.7.0)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
memcached (1.7.0)
mime-types (1.25)
mini_portile (0.5.1)
minitest (4.7.5)
@ -176,6 +177,7 @@ DEPENDENCIES
bigdecimal (~> 1.1.0)
coffee-rails (~> 4.0.0)
composite_primary_keys (>= 6.0.0)
dalli
deadlock_retry (>= 1.2.0)
dynamic_form
ejs
@ -186,8 +188,8 @@ DEPENDENCIES
jquery-rails
json
jsonify-rails
kgio
libxml-ruby (>= 2.0.5)
memcached (>= 1.4.1)
minitest (~> 4.7.0)
open_id_authentication (>= 1.1.0)
openstreetmap-i18n-js (>= 3.0.0.rc5.2)

View file

@ -58,7 +58,7 @@ OpenStreetMap::Application.configure do
# Use a different cache store in production.
if defined?(MEMCACHE_SERVERS)
config.cache_store = :mem_cache_store, MemCache.new(:namespace => "rails:cache", :no_block => true, :buffer_requests => true, :noreply => true)
config.cache_store = :mem_cache_store, MEMCACHE_SERVERS, { :namespace => "rails:cache" }
end
# Enable serving of images, stylesheets, and JavaScripts from an asset server.

View file

@ -1,7 +1,7 @@
if defined?(MEMCACHE_SERVERS)
require "openid/store/memcache"
OpenIdAuthentication.store = OpenID::Store::Memcache.new(MemCache.new(:namespace => "rails", :string_return_types => true))
OpenIdAuthentication.store = OpenID::Store::Memcache.new(Dalli::Client.new(MEMCACHE_SERVERS, :namespace => "rails"))
else
OpenIdAuthentication.store = :file
end

View file

@ -1,9 +1,7 @@
# Be sure to restart your server when you modify this file.
if defined?(MEMCACHE_SERVERS)
cache = MemCache.new(:namespace => "rails:session", :string_return_types => true)
OpenStreetMap::Application.config.session_store :mem_cache_store, :cache => cache, :key => "_osm_session"
OpenStreetMap::Application.config.session_store :mem_cache_store, :memcache_servers => MEMCACHE_SERVERS, :namespace => "rails:session", :key => "_osm_session"
else
OpenStreetMap::Application.config.session_store :cache_store, :key => '_osm_session'
end

View file

@ -1,31 +0,0 @@
class MemCache < Memcached::Rails
DEFAULT_OPTIONS = Memcached::DEFAULTS.merge(Memcached::Rails::DEFAULTS)
MemCacheError = Memcached::Error
@@connections = []
def initialize(options = {})
options.reverse_merge! :namespace_separator => ":"
super(MEMCACHE_SERVERS, options)
@@connections.push(self)
ObjectSpace.define_finalizer(self, lambda { |connection|
@@connections.remove(connection)
})
end
def self.connections
@@connections
end
end
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked
MemCache.connections.each { |connection| connection.reset }
end
end
end

View file