Это старый вопрос, но я не думаю, что какой-либо из текущих ответов был полным.
Во-первых, я считаю плохой идеей хранить данные сеанса на сервере базы данных, таком как mysql или SQL Server. БД - это ценный ресурс, и на самом деле нет причин использовать его только для данных сеанса.
Если вы собираетесь хранить сеанс в такой базе данных, есть «лучшие» способы сделать это, например, убедиться, что данные сеанса находятся на собственном независимом диске, и т. Д. ... но, честно говоря, я все еще чувствую как будто это ошибка и ограничит вашу масштабируемость.
Для хранения сессии вы хотите использовать простое хранилище ключей / значений, и, по моему мнению, вы не можете превзойти memcached (хотя мне также повезло с redis + nodejs).
У memcached есть клиенты, доступные практически для любого языка на земле: http://code.google.com/p/memcached/wiki/Clients
Итак, в основном все, что вам нужно сделать при использовании memcached, - это сгенерировать псевдослучайный токен для ключа и создать memcached.set. Затем сохраните этот ключ в файле cookie, который называется идентификатор сессии или что-то в этом роде.
Файл cookie с идентификатором сеанса может быть считан с любого языка сервера, .net, php, python и т. Д., А значение сеанса можно получить с помощью простого memcached.get.
Проверьте документы в memcached: http://code.google.com/p/memcached/wiki/NewStart
Это очень простой и масштабируемый способ выполнения сеансов, который будет работать практически с любым языком / сервером.