Nel mio sistema, ci sono molti web servers
condividere uno cache(memcache) server
.Come posso mantenere la sessione registrata e svuotare la cache tranne la sessione in memcache
Attualmente, cancellerà tutti i dati in memcache su ogni nuova distribuzione.
eseguendo rake memcached:flush
Cosa c'è di più, posso visto la user session
nella cache server,
Ma ogni volta, quando chiudo il browser sul mio iPhone, ho bisogno di ri-login ancora e ancora (Devo ottenere qualcosa di sbagliato).
Ho impostato il mio server nella parte posteriore della AWS ELB
e auto scaling
Come potrei tenere sessione gli utenti tra tutti i server dietro ELB
Per mantenere l'utente in stato di login ogni loro ritorna .
cache server
| 8 | 2016-03-01 10:07:59 +0000 | 291 | _session_id:08f1d7e8e82055367c44372d431b7f23 |
| 8 | 2016-03-01 10:07:22 +0000 | 291 | _session_id:3553ad00c578b175d789f02dc696dd95 |
| 8 | 2016-03-01 10:04:22 +0000 | 291 | _session_id:5cc2302455981a8a5d3cea98deb80acb |
confi/inizializzare/session.rb (li risparmio della cache con Dalli e memcache)
Rails.application.config.session_store :cookie_store, key: '_sampleA_session'
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 6.month
vista cache/modello cache
- cache("common_header", skip_digest: true) do
- cache("footer", skip_digest: true) do
...
cache. rake (rake task)
require 'socket'
namespace :memcached do
desc 'Flushes whole memcached local instance'
task :flush do
server = ENV['MEMCACHE_DB']
port = 11211
command = "flush_all\r\n"
socket = TCPSocket.new(server, port)
socket.write(command)
result = socket.recv(2)
if result != 'OK'
STDERR.puts "Error flushing memcached: #{result}"
end
socket.close
end
end
production.rb
config.action_controller.perform_caching = true
config.cache_store = :dalli_store, ENV['MEMCACHE_DB'], { :pool_size => 10 ,compress: true }
non ha funzionato se sposto cose memorizzate su memcache remoto :( – newBike
Puoi essere più specifico? Ho un'app con un memecache remoto utilizzando quasi la stessa configurazione e le cache in scadenza con la meccanica delle guide funziona perfettamente bene –
dopo aver eseguito il vostro comando la cache exsists ancora sul server di cache remota '| id | scade | byte | cache_key | | 4 | 2016/03/01 09:40:15 +0000 | 74 | _session_id: c388b2a5568dfd2917d0796b30154c68 | | 12 | 2015 -09-03 09:37:59 +0000 | 1070 | views/footer | | 13 | 2015-09-03 09:37:59 +0000 | 1163 | views/common_header | ' – newBike