Criei um
SessionStateStoreProvider
baseado em Redis que pode ser encontrado no GitHub usando ServiceStatck.Redis
como cliente (em vez de Booksleeve). Ele pode ser instalado via NuGet com
Install-Package Harbour.RedisSessionStateStore
. Encontrei algumas peculiaridades com a abordagem de @NathanD. Na minha implementação, os bloqueios são armazenados com o valor da sessão em vez de uma chave separada (menos viagens de ida e volta para o Redis). Além disso, porque usa
ServiceStack.Redis
, ele pode usar conexões em pool. Finalmente, é testado. Este foi o meu maior desligamento da abordagem de @NathanD. Não havia como realmente saber se funcionou sem executar todos os casos de uso manualmente.