
Hans
08.06.2018
17:24:16
Подскажите плз по редису, пытаюсь datatables привязать к выдаче от редиса, а как в нём можно найти по маске значение? В Mysql понятно, это where column like %something%
а в редис? Например я хочу выбрать всё, где OS начинается с Wi*
$stat->find()->where(['os' => 'Wi*']); ?
щас я пытаюсь примерно такое сделать, в редисе 4 столбца, по всем нужно искать, когда пользователь вводит значение в DataTables для поиска:
if(!empty($global_search["value"]))
foreach($columns as $column){
$condition[$column["name"]] = $global_search["value"].'*';
}
$output = $stat->find()->where($condition);
В итоге получается $condition в виде:
$condition = {array} [5]
id = "100"
Ip = "W*"
Hits = "W*"
User-Agent = "W*"
OS = "W*"

Maxim
08.06.2018
17:44:14

Виктор
08.06.2018
18:31:01

Google

Hans
08.06.2018
18:34:06
Понятно
scan 0 MATCH *100* ищет ключи
Как значение по MATCH найти не пойму из дока

Виктор
08.06.2018
18:37:16
Только на равенство.
Вообще немного кейсов использования редиса в таком качестве. Т-к выгребается все из редиса, что касается конкретной модели, и каждое значение сравнивается с заданным.
У mysql же есть движок MEMORY, который в данном случае по моему предпочтительней.

Hans
08.06.2018
18:40:07
Понятно. Получается мне надо все записи из редиса вытянуть по модели Stats и уже перебрать значения на соответствие ( регексом ? ) поисковому запросу?

Виктор
08.06.2018
18:55:41
да. yii2-redis так и делает(только на равенство).Можно LuaScriptBuilder расширить, добавив требуемый функционал.
Если конечно данное расширение используется

Hans
08.06.2018
19:09:07
ща посмотрю как им пользоваться
я в пхп накидал, но это не очень
через stripos, но это жесть, тогда весь смысл редиса пропадёт

Виктор
08.06.2018
19:21:37
юзкейс не совсем подходящий.

Vadim
08.06.2018
20:34:26
Мб кто-то работает с докером на локалке. Очень долго грузятся страницы. По секунде где-то.
ХЗ где проблема. Может в dns

Google

?
08.06.2018
20:35:23
Днс тебе только айпи отдает куда стучаться
Проверить легко в постах пропиши и посмотри скорость
Но скорее всего дело не в нем

Vadim
08.06.2018
20:36:39

?
08.06.2018
20:37:11
Есть такой файл hosts в нем ip и домен
Когда ты к сайту обращаешься он в начале смотрит в hosts а потом в днс
На Линукс он в /etc/hosts

Vadim
08.06.2018
20:38:46
А, там просто “в постах пропиши”
выше

Владимир
08.06.2018
20:39:19

Vadim
08.06.2018
20:39:23

Владимир
08.06.2018
20:39:31
есть такая тема на мак оси
на линуксе быстрее...

Vadim
08.06.2018
20:39:45

Владимир
08.06.2018
20:41:31
А решение есть? :)
Можно кое что сделать…например :cached использовать для вольюмов и т.д., я пробовал, чуток быстрее стало, но не особо. Сильно глубоко не копал эту тему)

Vadim
08.06.2018
20:42:21

?
08.06.2018
20:50:31
С локалки своего компа ? Не проще базу спарсить ?

Vadim
08.06.2018
20:51:32

?
08.06.2018
20:51:49
А

Oleg
08.06.2018
21:41:20
народ, скажите, пожалуйста, кто что юзает для подвязки галереи к моделям? Был хороший компонент Gallery Manager от zxbodya, но сейчас он выдаёт ошибки. Есть похожие альтернативные решения? В этом компоненте удобный виджет загрузки с сортировкой и есть возможность задавать пути для картинок (согласно id модели)

Google

Ad.x ??
08.06.2018
21:45:56
форк дистра и вперед

Oleg
08.06.2018
21:51:08
форк дистра и вперед
я не спрашивал, что делать, я спрашиваю, кто что юзает и есть ли альтернативы этому компоненту с аналогичными функциями

Konstantin
09.06.2018
03:56:51

Javharbek
09.06.2018
07:14:04
Всем привет!
При запуски тестов выдаёт данную ошибку.
Fatal error: Call to a member function resetApplication() on null in \vendor\codeception\base\src\Codeception\Module\Yii2.php on line 364
В чём может быть причина.

SHEROZ
09.06.2018
07:36:02
Привет, всем! При запросе в бд
$order = Order::find()->where(['stool_id' => 2, 'status' => 1])->one()
ничего не возвращается

Максим
09.06.2018
07:36:22

SHEROZ
09.06.2018
07:39:15
SELECT * FROM 'order' WHERE ('stool_id'='2') AND ('status'='1') это в дебагере yii
Распечаталь $order с помощью print_r(), ничего не возвращает

Максим
09.06.2018
07:41:37
var_dump надо
Print_r не печатает false и null

SHEROZ
09.06.2018
07:44:07
Записи существуют, запрос должен был вернуть строку где stool_id = 2 и status = 1
Может проблема в том что тип status в таблице enum('0','1')

Максим
09.06.2018
07:45:54
И stool_id тоже

SHEROZ
09.06.2018
07:48:24
Пробовал убрать status из where все сработало

Максим
09.06.2018
07:48:50
'status' => '1' вот так работает?

SHEROZ
09.06.2018
07:53:37

Google

Alex
09.06.2018
07:54:48
ну так посмосмтри финальный запрос в дебагере
и сравни в базой
с*

SHEROZ
09.06.2018
07:55:16
Пробовал в phpmyadmin SELECT * FROM 'order' WHERE 'stool_id'='2' AND 'status'='1' нечего не возвращает, хотя записи существуют

Максим
09.06.2018
07:55:36
покажи скрин, где они существуют
и какой тип поля stool_id?

Alex
09.06.2018
07:56:23
SELECT * FROM 'order' WHERE 'stool_id'='2' AND 'status'=1 - а так?
типа без кавычек

Максим
09.06.2018
07:56:56
SELECT * FROM 'order' WHERE 'stool_id'=2 AND 'status'='1' или так)

Admin
ERROR: S client not available

Alex
09.06.2018
07:56:58
а вообще вопрос зачем тебе там енум то?)

Максим
09.06.2018
07:57:11
все варианты с кавычками перепробуй, определи какой подходит

Alex
09.06.2018
07:57:16
smallint самое оно + индекс)

Максим
09.06.2018
07:57:35
и вообще да, enum такое себе поле

Alex
09.06.2018
07:58:26
это больше для баз типа ораклы или скл

SHEROZ
09.06.2018
08:00:32
Сработало, спасибо

Alex
09.06.2018
08:00:43
что именно?)

SHEROZ
09.06.2018
08:01:10
Заменил enum на int

Alex
09.06.2018
08:01:18
а) красавчег)
+ мне в карму)

Google

Дмитрий
09.06.2018
08:01:48
А теперь ещё махнуть инт на стринг)

Alex
09.06.2018
08:01:55
пфф
text)
и делать полнотекстовый поиск)
поднимем elastic для индексации)

Максим
09.06.2018
08:02:22

Yet Another Stats
09.06.2018
08:03:23
Карма @Alex_Bond_LA стала 2

Alex
09.06.2018
08:03:32
йопта!

Ad.x ??
09.06.2018
08:03:33

Alex
09.06.2018
08:03:45

Ad.x ??
09.06.2018
08:04:08

Дмитрий
09.06.2018
08:04:10

Максим
09.06.2018
08:05:43

Ad.x ??
09.06.2018
08:06:30
ну это да
но с другой стороны, не все таблицы крупные =)

Максим
09.06.2018
08:06:50
плюс миграция на каждый раз нужна)

Alex
09.06.2018
08:07:44
да и ваще слишком хипстерски)

Дмитрий
09.06.2018
08:08:14
плюс миграция на каждый раз нужна)
Косяк инта в том, что если фронт тебя строит - а что означает цифра 5 в статусе - придется лезть в код чтобы сказать что это статус «Закрыт»

Alex
09.06.2018
08:08:43
всеравно придется)

Ad.x ??
09.06.2018
08:09:29

Alex
09.06.2018
08:09:38