Если вопрос для кого-то еще актуален, или если кто-то столкнулся с такой проблемой, то есть решение. Напишу на эту тему лонгрид.
По-умолчанию время жизни сессий (ключей) в Redis безгранично, то есть всегда хранится в ОЗУ и периодически (в зависимости от заданных настроек) вся информация сбрасывается в файл на диск, чтоб при перезагрузке сервера её можно было восстановить без потерь для пользователей. Сначала немного тестов.
Настройками CS Cart задано ограничение на время жизни ключей. Причем есть разные настройки.
В корневой папке сайта, в файле config.php есть строки:
Перезапускать службу redis или чистить кэш не обязательно. Таким образом время ваших новых сессий на сайте будет равно одной неделе (604 800 секунд). Если проверять новые ключи через команду ttl, то у всех ключей отсчет будет начинаться именно со значения 604800 и корзина с закладками у неавторизованных пользователей будет храниться неделю.
Важные моменты:
а) если в течение недели пользователь будет заходить на сайт, то время ключа будет обновляться обратно к неделе, то есть, в теории, время жизни ключа будет бесконечным, если пользователь будет периодически заходить на сайт до истечения время жизни его ключа. 1 пользователь = 1 ключ.
б) время жизни сессии в админке и в личном кабинете пользователей тоже станет одна неделя. То есть не придется каждый раз авторизовываться при заходе, а разъединение с админкой и с личным кабинетом произойдет через неделю, если вы или пользователь в течении этого времени не заходили туда.
Способ 2. Увеличить время жизни только неавторизованных сессий.
В файле Redis.php найдите строку:
// An additional hour is needed because Redis may delete the record before the gc() method will be invoked,
// An additional hour is needed because Redis may delete the record before the gc() method will be invoked,
Аналогично первому способу, время новых сессий теперь будет равно неделе. Но отличие в том, что время жизни авторизации админки или личного кабинета останется два часа. На жизнь корзины и закладок неавторизованных пользователей это не повлияет, они будут жить неделю и обновляться при периодическом заходе на сайт.
Вот и все. Несколько советов.
1) Не стоит забывать о том, что чем больше посетителей, тем больше ключей хранит Redis, поэтому задайте конфигурацию Redis (/etc/redis.conf) под ваш магазин: оптимальную периодичность сброса кэша на диск и лимит размера кэша, при достижении которого Redis будет удалять наименее используемые ключи из списка.
2) По поводу оптимального времени жизни ключей: я считаю, что это неделя. Незаинтересованный покупатель за это время не зайдет на сайт и его ключ спокойно умрет, а заинтересованный будет заходить периодически и тем самым поддерживать жизнь ключа. Авторизованному пользователю так вообще ничего не грозит - его корзина и закладки, видимо, хранятся в другом месте, потому что их время жизни не привязывается ко времени жизни ключей Redis (проверил это на практике).
3) Если вы хотите потестить ключи через Putty, но не знаете какой ключ ваш, то вы можете сопоставить название с куки-файлом из браузера.
В Chrome способ такой:
1) нажимаете слева от адреса сайта в адресной строке значок замка (если есть SSL) или буквы i в кружке
2) В открывшемся окне нажимаете на "Используется столько-то файлов cookie"
3) В новом окне находите в списке папку вашего сайта, в ней находите папку "Файлы cookie" и в ней ищите файл "sid_customer_номер". Нажав на файл, снизу в доп. информации, в строке "Контент" вы увидите полное имя файла, которое, как правило, совпадает с именем ключа в Redis. На время жизни файла в доп. информации внимание обращать не стоит - это время жизни куки-файла, а не ключа Redis.
Надеюсь, вся эта информация окажется кому-то полезной и поможет оптимизировать свой сайт под высокую посещаемость с помощью Redis, не создавая клиентский негатив с пропадающими корзинами и закладками.