2014-10-26 4 views
1

Я хочу удалить все ключи, соответствующие SomePrefix * из моего Redis. Является ли это возможным ? Я вижу только m_connectionMultiplexer.GetDatabase(). KeyDelete(), но не KeyMatch() или GetAllKeys() в библиотеке.удалить все совпадающие ключи

Предпочтительно не Lua сценариев, таких как link by Leonid Beschastny

Я хочу использовать, что при инициализации веб-приложения для состояния разработки приложения.

+1

Возможный дубликат [Как атомно удалять ключи, соответствующие шаблону, используя Redis] (http://stackoverflow.com/q/4006324/1202461). –

+0

Я знаю это, но я думал, что есть более легкое использование, а не lua внутри клиента stackexchange.redis – eugeneK

ответ

2

SE.Redis напрямую имитирует функции, открытые сервером. На сервере нет функции «Удалить ключи, соответствующие этому шаблону». У него есть «поиск ключей, соответствующих этому шаблону» (через GetServer().GetKeys(...)), и он «удаляет эту клавишу/эти ключи» (через GetDatabase.KeyDelete(...)). Вы можете перебирать партии по совпадающим клавишам, удаляя каждую партию по очереди. Поскольку вы можете запросить конвейер, вы не оплачиваете латентность за пакет.

В качестве альтернативной реализации: разделите данные с помощью числовой базы данных (select) или на сервере и используйте flushdb/flush.

+0

Вы, должно быть, шутите, я должен спросить разработчика этой вещи ;-) ... Спасибо – eugeneK

+0

@eugeneK note: я добавил альтернативный вариант в редактирование. –

Смежные вопросы