Поддержание открытого соединения Redis с помощью BookSleeve

Есть ли у кого-нибудь надежный шаблон получения Redis через библиотеку BookSleeve?

То есть:

Автор BookSleeve @MarcGravell рекомендует не открывать и закрывать соединение каждый раз, а поддерживать одно соединение на протяжении всего приложения. Но как вы можете обрабатывать разрывы сети? Т.е. соединение может быть успешно открыто с самого начала, но когда какой-то код пытается читать/писать в Redis, есть вероятность, что соединение упало, и вы должны снова открыть его (и отказать изящно, если оно не открывается - но это зависит от ваших потребностей дизайна)

Я ищу фрагмент(ы) кода, который охватывает общее открытие соединения Redis, и общую проверку "жив" (+ необязательное пробуждение, если не жив), которая будет использоваться перед каждым чтением/записью.

Этот вопрос предлагает хорошее отношение к проблеме, но оно лишь частичное (оно не восстанавливает потерянное соединение, например), а принятый ответ на этот вопрос рисует правильный путь, но не демонстрирует конкретный код.

Я надеюсь, что эта тема получит солидные ответы и в конечном итоге станет своего рода Wiki в отношении использования BookSleeve в .Net приложениях.

-----------------------------

ВАЖНОЕ ОБНОВЛЕНИЕ (21/3/2014):

-----------------------------

Marc Gravell (@MarcGravell) / Stack Exchange недавно выпустили библиотеку StackExchange.Redis, которая в конечном итоге заменит Booksleeve. Эта новая библиотека, среди прочего, внутренне обрабатывает повторные подключения и делает мой вопрос излишним (то есть, он не излишен ни для Booksleeve, ни для моего ответа ниже, но я полагаю, что лучшим способом будет начать использовать новую библиотеку StackExchange.Redis).

26
задан Community 23 May 2017 в 12:16
поделиться