Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Хранение пользовательских сессии в redis/memcached etc


Recommended Posts

Рад приветствовать форумчан!
Вопрос по сабжу: возможно ли хранить сессии пользователей в key-vaule базе?
Может уже есть готовое решение?

Т.к. даже автоочистка таблицы сессий при большой количестве уников напрягает :mellow:

Link to post
Share on other sites

2 hours ago, Twissell said:

Т.к. даже автоочистка таблицы сессий при большой количестве уников напрягает

чем? какую задачу \ проблему Вы хотите решить?

 

2 hours ago, Twissell said:

возможно ли хранить сессии пользователей в key-vaule базе?

 

в key-vaule базах можно, но выигрыш от этого сомнительный, если сравнивать с хранением сессий в бд: если с файлами еще случаются заметные лаги при большом количестве сессий и небольшой производительности дисковой подсистемы, то с хранилищем в том же редисе или в бд лагов увидеть уже не так-то и просто.

И да. мемкеш не рекомендую, так как после ребута сервера или рестарта демона все сессии с корзинками или вишлистами тю-тю.

 

Link to post
Share on other sites

1 hour ago, 100napb said:

чем? какую задачу \ проблему Вы хотите решить?

Тем, что Опенкарт проверяет табличку из 10 тыс. строк не истекла ли сессия и  эти запросы попадают в slow_log MySQL.
Можно сократить время жизни сессии, но в других движках хорошей практикой считается вынести это в отдельное хранилище.

  • +1 1
Link to post
Share on other sites

1 hour ago, Twissell said:

Тем, что Опенкарт проверяет табличку из 10 тыс. строк не истекла ли сессия и  эти запросы попадают в slow_log MySQL.

 

Spoiler

до создания индекса по полю с датой протухания сессии - фулскан таблицы

ALTER TABLE oc_session ADD INDEX IDX_expire(expire);

207471107_.png.103ce68899d94b8b6da2b11589bd20bb.png

 

после создания индекса.

 

1035402226_.png.0df4e33ec88ddddca2fc85e19cd93717.png

 

 0.014сек без индекса и буквально мгновенно с индексом.

 

ура?

 

ко всему прочему а) очистка таблицы сессий - событие не частое. б) таблица в innodb и блокировок параллельных запросов не происходит при очистке.

Итого - если у Вас не миллионы трафика, то проблемы как бы и нет.

  • +1 3
Link to post
Share on other sites

Спасибо, индексы всегда решают :D
На самом деле я больше сисадмин, чем разработчик, работающий с Опенкарт, потому проблемы решаю админскими методами ;-)

Link to post
Share on other sites

5 часов назад, 100napb сказал:

 

  Скрыть контент

до создания индекса по полю с датой протухания сессии - фулскан таблицы

ALTER TABLE oc_session ADD INDEX IDX_expire(expire);

207471107_.png.103ce68899d94b8b6da2b11589bd20bb.png

 

после создания индекса.

 

1035402226_.png.0df4e33ec88ddddca2fc85e19cd93717.png

 

 0.014сек без индекса и буквально мгновенно с индексом.

 

ура?

 

ко всему прочему а) очистка таблицы сессий - событие не частое. б) таблица в innodb и блокировок параллельных запросов не происходит при очистке.

Итого - если у Вас не миллионы трафика, то проблемы как бы и нет.

Ну ну, а сколько на трафике в полторы тысячи онлайн эти 0.014 сек, которые не будут 0.014, потому что на больших магазинах таблица огромна. будут выполняться и сколько сьедят ресурсов ?

 

Пятерочный совет!

Link to post
Share on other sites

24 minutes ago, Yoda said:

Ну ну, а сколько на трафике в полторы тысячи онлайн эти 0.014 сек, которые не будут 0.014, потому что на больших магазинах таблица огромна. будут выполняться и сколько сьедят ресурсов ?

Совершенно очевидно, что у ТС проблемы попроще. По пути к онлайну в 1,5к уников опенкарт будет ждать 1001 других bottleneck'ов - более серьезных, чем выбор и тюнинг хранилища сессий.

Но вы конечно же так написали, словно не бывает никаких машин кроме бугатти, а если и бывает, то ездить они не способны. Впрочем, мы уже давно знаем, что Вам подобная манера свойственна: крайности, преувеличения, демагогия и всяческие попытки выставить других в плохом свете.

 

 

  • +1 4
Link to post
Share on other sites

В 27.04.2021 в 22:52, 100napb сказал:

Совершенно очевидно, что у ТС проблемы попроще. По пути к онлайну в 1,5к уников опенкарт будет ждать 1001 других bottleneck'ов - более серьезных, чем выбор и тюнинг хранилища сессий.

Но вы конечно же так написали, словно не бывает никаких машин кроме бугатти, а если и бывает, то ездить они не способны. Впрочем, мы уже давно знаем, что Вам подобная манера свойственна: крайности, преувеличения, демагогия и всяческие попытки выставить других в плохом свете.

 

 

То что вы знаете, знайте дальше.

Тут речь идет про сессии, и мы говорим конкретно о сессиях, демагогии про бутылочные горлышки - оставьте вашему кружку особо одаренных.


Вся проблема в том, что каждый типа специалист несет сразу какую то дичь про баттлнеки и еще полную ересь, не пытаясь решить здесь и сейчас проблему, как я должен к вам относится ? 
Ну как себя ведете - так и получите. Демагоги!

Мало того, кого выставить, демагоги - они и в африке демагоги, нормальных людей на форуме полно, не нужно говорить за всех.

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By SirGrey
      750 10
      Скачать/Купить дополнение


      Кеширование Redis
      Драйвер кеширования Redis для Opencart 1.5.x - 3.x
       
      Redis — это высокопроизводительное распределенное хранилище данных.
      Высокая скорость работы обеспечивается за счет хранения данных в оперативной памяти, которые периодически сохраняются на диск.
       
      Для работы модуля необходим включенный Redis на сервере и библиотека  php-redis
       
      Инструкция по установке
       
      Opencart 2.x - 3.x  Стандартный установщик модулей.
      Opencart 1.5.x Распаковать архив в корень сайта.
       
       
      Добавить константы в файлы config.php и admin->config.php
      // Redis define('CACHE_HOSTNAME', '127.0.0.1'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'redis_'); define('CACHE_PASSWORD', '');  
      Reds  для Opencart 3.x
       
      В OpenCart 3 драйвер Redis уже присутствует.
      В модуле заменены устаревшие функции и добавлена авторизация.
       
      Файл system->config->default.php
       
      Изменить
       
      $_['cache_engine'] = 'redis';  
      На 
       
      $_['cache_engine'] = 'redisp';  
       
      Reds  для Opencart 2.2 - 2.3
       
      Файл system->config->default.php
      Изменить
      $_['cache_type'] На 
      $_['cache_type'] = 'redis';
      Reds  для Opencart 2.0.x - 2.1.x
       
      Файл index.php и admin->index.php
       
      изменить
      $cache = new Cache('file');  
      На
       
      $cache = new Cache('redis');
      Reds  для  Opencart 1.5.x
       
      файл index.php и admin->index.php изменить
      $cache = new Cache('file');  
      На
       
      $cache = new redis_cache(); После 
      require_once(DIR_SYSTEM . 'library/cart.php');  Добавить
      require_once(DIR_SYSTEM . 'library/redis_cache.php'); Если вы используете VQMod добавить
       
      require_once(VQMod::modCheck(DIR_SYSTEM . 'library/redis_cache.php'));  
       
      Добавил SirGrey Добавлено 20.11.2019 Категория SEO, карта сайта, оптимизация Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 0  
    • By SirGrey
      Драйвер кеширования Redis для Opencart 1.5.x - 3.x
       
      Redis — это высокопроизводительное распределенное хранилище данных.
      Высокая скорость работы обеспечивается за счет хранения данных в оперативной памяти, которые периодически сохраняются на диск.
       
      Для работы модуля необходим включенный Redis на сервере и библиотека  php-redis
       
      Инструкция по установке
       
      Opencart 2.x - 3.x  Стандартный установщик модулей.
      Opencart 1.5.x Распаковать архив в корень сайта.
       
       
      Добавить константы в файлы config.php и admin->config.php
      // Redis define('CACHE_HOSTNAME', '127.0.0.1'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'redis_'); define('CACHE_PASSWORD', '');  
      Reds  для Opencart 3.x
       
      В OpenCart 3 драйвер Redis уже присутствует.
      В модуле заменены устаревшие функции и добавлена авторизация.
       
      Файл system->config->default.php
       
      Изменить
       
      $_['cache_engine'] = 'redis';  
      На 
       
      $_['cache_engine'] = 'redisp';  
       
      Reds  для Opencart 2.2 - 2.3
       
      Файл system->config->default.php
      Изменить
      $_['cache_type'] На 
      $_['cache_type'] = 'redis';
      Reds  для Opencart 2.0.x - 2.1.x
       
      Файл index.php и admin->index.php
       
      изменить
      $cache = new Cache('file');  
      На
       
      $cache = new Cache('redis');
      Reds  для  Opencart 1.5.x
       
      файл index.php и admin->index.php изменить
      $cache = new Cache('file');  
      На
       
      $cache = new redis_cache(); После 
      require_once(DIR_SYSTEM . 'library/cart.php');  Добавить
      require_once(DIR_SYSTEM . 'library/redis_cache.php'); Если вы используете VQMod добавить
       
      require_once(VQMod::modCheck(DIR_SYSTEM . 'library/redis_cache.php'));  
       
    • By SirGrey
      750 10
      Скачать/Купить дополнение


      Redis Session Driver (Хранение сессии в Redis)
      Хранение пользовательских сессии в Redis
       
      Стандартно OpenCart хранит сессии в базе данных или файлах.
       
      Это работаете отлично но при большом объёме и нагрузке замедляет работу сайта.
       
      Redis отличное решение для хранения сессий.
      Все операции происходят в оперативной памяти поэтому чтение и запись будут быстрее.
       
      Redis — это высокопроизводительное распределенное хранилище данных.
      Высокая скорость работы обеспечивается за счет хранения данных в оперативной памяти, которые периодически сохраняются на диск.
       
      Для работы модуля необходим включенный Redis на сервере и библиотека php-redis
       
      Добавил SirGrey Добавлено 28.04.2021 Категория Кэширование, сжатие, ускорение Системные требования php-redis Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 0  
    • By SirGrey
      Хранение пользовательских сессии в Redis
       
      Стандартно OpenCart хранит сессии в базе данных или файлах.
       
      Это работаете отлично но при большом объёме и нагрузке замедляет работу сайта.
       
      Redis отличное решение для хранения сессий.
      Все операции происходят в оперативной памяти поэтому чтение и запись будут быстрее.
       
      Redis — это высокопроизводительное распределенное хранилище данных.
      Высокая скорость работы обеспечивается за счет хранения данных в оперативной памяти, которые периодически сохраняются на диск.
       
      Для работы модуля необходим включенный Redis на сервере и библиотека php-redis
       
    • By anton12121
      Доброго времени суток! 
      opencart 3
      Что хотелось бы получить: Нужно хранить сессии корзины (не зарегистрированных пользователей) 14 дней (чтоб они не удалялись при закрытии браузера)
      Что сделано:
      1. В /public_html/system/library/cart/cart.php изменил строку $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 14 DAY)");
      2. Хостинг чистит раз в сутки папку сессий, поэтому пытался в .htaccess изменить место хранения сессий (но сессии в указанной дирректории не стали сохранятся) php_value session.save_path "/home/pryzhaby/sessions"
       
      Помогите если кто в курсе как все правильно сделать! 
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.