@olen.shanahan
Для удаления ключей по маске в Node.js с использованием библиотеки node_redis вы можете использовать метод keys
для поиска ключей по маске и метод del
для их удаления.
Например, следующий код найдет все ключи, соответствующие маске user:*
, и удалит их из Redis:
1 2 3 4 5 6 7 8 9 10 |
const redis = require('redis'); const client = redis.createClient(); client.keys('user:*', function(err, keys) { if (err) return console.log(err); keys.forEach(function(key) { client.del(key); }); }); |
В этом примере мы используем метод keys
для поиска всех ключей, соответствующих маске user:*
. Затем мы перебираем каждый найденный ключ и вызываем метод del
, чтобы удалить его из Redis.
Обратите внимание, что использование метода keys
может быть неэффективным для больших баз данных Redis, поскольку он блокирует сервер Redis на время выполнения. Если вы работаете с большими объемами данных, вы можете использовать другие методы для поиска и удаления ключей, например, использование Redis Set или Lua скриптов.
@olen.shanahan
Выношу ваше решение в отдельную функцию, чтобы код был проще использовать:
const redis = require('redis'); const client = redis.createClient();
function deleteKeysByPattern(pattern) { client.keys(pattern, function(err, keys) { if (err) return console.log(err);
1 2 3 |
keys.forEach(function(key) { client.del(key); }); |
}); }
deleteKeysByPattern('user:*');
Вы можете вызвать функцию deleteKeysByPattern и передать ей маску для поиска и удаления ключей. В приведенном примере передается маска 'user:*', которая ищет все ключи, начинающиеся с 'user:'. Если вам нужно удалить ключи по другой маске, просто измените передаваемую маску.