PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
denntl Отправлено: 04 Сентября, 2016 - 14:30:48 • Тема: Redis - увеличивается время set () после 350k ключей • Форум: Хранение данных, их вывод и обработка

Ответов: 0
Просмотров: 599
Здравствуйте. Работает парсер, пишет в редис. На момент добавления 350 000 ключей (согласно info, сам размер rdb 27 MB) увидел что время на запись ключа стало не 0.001 как при пустой БД, а 0.08, что существенно увеличило время выполнения моего синхронного скрипта.

Так вот меня удивляет этот факт. Конфиг редиса стандартный. ОП памяти 16 GB на машине, 8 ядер процессор. Тестирую парсер на Виндовс 7.

Разве так и должно быть?

Менял конфигурацию редиса, давал ему 1 ГБ оперативки (хоть согласно info [used_memory_peak_human] => 62.29M), отключал запись по времени\лимиту, удалось снизить время с 0.08 на 0.07. Записи максимум по 100 символов, по сути json строка. В среднем длина около 30 символов.

Я, конечно, могу посмотреть в сторону асинхронности, многопоточности либо задействовать NodeJS, но может можно как-то иначе решить этот вопрос. Буду благодарен за идеи.



Вот весь инфо массив:

PHP:
скопировать код в буфер обмена
  1. (
  2. [redis_version] => 3.0.501
  3. [redis_git_sha1] => 0
  4. [redis_git_dirty] => 0
  5. [redis_build_id] => ba05b51e58eb9205
  6. [redis_mode] => standalone
  7. [os] => Windows
  8. [arch_bits] => 64
  9. [multiplexing_api] => WinSock_IOCP
  10. [process_id] => 2928
  11. [run_id] => 078292439f7dee97f77d0e7f885de8fdf57a1d85
  12. [tcp_port] => 6379
  13. [uptime_in_seconds] => 6029
  14. [uptime_in_days] => 0
  15. [hz] => 10
  16. [lru_clock] => 13360558
  17. [config_file] => d:\openserver\modules\redis\Redis-3.0-x64\redis.conf
  18. [connected_clients] => 1
  19. [client_longest_output_list] => 0
  20. [client_biggest_input_buf] => 0
  21. [blocked_clients] => 0
  22. [used_memory] => 63280688
  23. [used_memory_human] => 60.35M
  24. [used_memory_rss] => 63222040
  25. [used_memory_peak] => 65320216
  26. [used_memory_peak_human] => 62.29M
  27. [used_memory_lua] => 36864
  28. [mem_fragmentation_ratio] => 1.00
  29. [mem_allocator] => jemalloc-3.6.0
  30. [loading] => 0
  31. [rdb_changes_since_last_save] => 0
  32. [rdb_bgsave_in_progress] => 0
  33. [rdb_last_save_time] => 1472972321
  34. [rdb_last_bgsave_status] => ok
  35. [rdb_last_bgsave_time_sec] => -1
  36. [rdb_current_bgsave_time_sec] => -1
  37. [aof_enabled] => 0
  38. [aof_rewrite_in_progress] => 0
  39. [aof_rewrite_scheduled] => 0
  40. [aof_last_rewrite_time_sec] => -1
  41. [aof_current_rewrite_time_sec] => -1
  42. [aof_last_bgrewrite_status] => ok
  43. [aof_last_write_status] => ok
  44. [total_connections_received] => 20
  45. [total_commands_processed] => 352968
  46. [instantaneous_ops_per_sec] => 0
  47. [total_net_input_bytes] => 15868781
  48. [total_net_output_bytes] => 24437111
  49. [instantaneous_input_kbps] => 0.01
  50. [instantaneous_output_kbps] => 1.21
  51. [rejected_connections] => 0
  52. [sync_full] => 0
  53. [sync_partial_ok] => 0
  54. [sync_partial_err] => 0
  55. [expired_keys] => 0
  56. [evicted_keys] => 0
  57. [keyspace_hits] => 352596
  58. [keyspace_misses] => 0
  59. [pubsub_channels] => 0
  60. [pubsub_patterns] => 0
  61. [latest_fork_usec] => 0
  62. [migrate_cached_sockets] => 0
  63. [role] => master
  64. [connected_slaves] => 0
  65. [master_repl_offset] => 0
  66. [repl_backlog_active] => 0
  67. [repl_backlog_size] => 1048576
  68. [repl_backlog_first_byte_offset] => 0
  69. [repl_backlog_histlen] => 0
  70. [used_cpu_sys] => 19.33
  71. [used_cpu_user] => 6.46
  72. [used_cpu_sys_children] => 0.00
  73. [used_cpu_user_children] => 0.00
  74. [cluster_enabled] => 0
  75. [db0] => keys=352653,expires=0,avg_ttl=0
  76. )
denntl Отправлено: 22 Августа, 2013 - 17:37:48 • Тема: Не выходит авторизация на сайте (куки отправил, видно что-то забыл) • Форум: Программирование на PHP

Ответов: 2
Просмотров: 276
При авторизации в ручную, выдавало именно это. Капчи при входе нету.

Я так понял это поле заполняется когда капча задействована.
denntl Отправлено: 22 Августа, 2013 - 16:37:35 • Тема: Не выходит авторизация на сайте (куки отправил, видно что-то забыл) • Форум: Программирование на PHP

Ответов: 2
Просмотров: 276
Здравствуйте. Пытаюсь авторизоваться на сайте http://advego[dot]ru/ . Использую вот такой вот код с реальными данными (можно использовать их):

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     function isAuth( $data ){
  3.     return preg_match('#<form[^>]+id="logout"#Usi',$data);
  4.     }
  5.     function request($url,$post = 0){
  6.     $ch = curl_init();
  7.     curl_setopt($ch, CURLOPT_URL, $url ); // отправляем на
  8.     curl_setopt($ch, CURLOPT_HEADER, 0); // пустые заголовки
  9.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить то что вернул сервер
  10.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // следовать за редиректами
  11.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут4
  12.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  13.     curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt'); // сохранять куки в файл
  14.     curl_setopt($ch, CURLOPT_COOKIEFILE,  dirname(__FILE__).'/cookie.txt');
  15.     curl_setopt($ch, CURLOPT_POST, $post!==0 ); // использовать данные в post
  16.     if($post)
  17.         curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  18.     $data = curl_exec($ch);
  19.     curl_close($ch);
  20.     return $data;
  21.     }
  22.  
  23. $url = 'http://advego.ru/login/';
  24. $data = request('http://advego.ru/login/');
  25. include 'simple_html_dom.php';
  26. $data = str_get_html($data);
  27. $auth = array(
  28. 'login'=>'test-to-test@lenta.ru',
  29. 'pwd'=>'AdVeGo123',
  30. 'action'=>'login',
  31. 'uri'=>'/login/',
  32. 'captcha'=>'tmp_value',
  33. 'remember'=>'on'
  34. );
  35. $data->clear();
  36. unset($data);
  37. echo isAuth(request($url,$auth))?'Success':'Failed';;
  38.  
  39. ?>


Не выходит авторизоваться, пишет Failed. Я так понял что сайту нужно еще что-то отправить, но как это сделать не знаю.
Вторым шагом должно быть добавление статьи в магазин статей.
Заранее очень благодарен. Спасибо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB