У меня есть следующие структуры в Redis,Redis - удалить поле путем сопоставления с образцом на хэш ключа
commKey:hkey1
target1 - value1
target2 - value2
commKey:hkey2
target2 - value3
target3 - value4
commKey:hkey3
target1 - value5
target3 - value6
...
commkey появится на всех HASHKEYS сопровождаемых имен и уникальной строки (hkey1, hkey2, hkey3 .. .). Я хочу удалить все target1 s во всех ключах. target1
появляется в commKey:hkey1
и commKey:hkey3
. Итак, это что-то вроде матча commKey:*
и del target1
. Я попытался сделать это с помощью hscan
, который позволяет сопоставлять шаблоны в подразделах (полях). Но мне нужно сделать это на «haskkey». Как это сделать эффективно? Заранее спасибо.
PS: У нас есть commKey
, потому что в будущем мы можем захотеть добавить еще один тип hashkey, который не начинается с commKey
, и это не должно зависеть от этого.
Это возможный способ. нам нужно сделать две операции. 'SCAN' и' HDEL'. Разве это невозможно с единой работой? Есть ли способ сделать комбинацию как совпадения, так и удаления – RaR
@RaR AFAIK, нет такого способа ... Если вы его найдете, поделитесь им со мной :) –
Позже я обнаружил, что фактическая необходимость - сканирование, а также HSCAN. 'SCAN' с совпадением' commKey: * 'и для каждого возвращаемого ключа необходимо выполнить' HSCAN' с совпадением 'target1 *'. Затем для каждого результата необходимо выполнить «HDEL».Чтобы избежать этих многих шагов, я искал более легкий и минимальный путь – RaR