Redis
 sql >> база данни >  >> NoSQL >> Redis

Командата UNLINK винаги ли е по-добра от командата DEL?

Преди да обсъдим коя е по-добра, нека да разгледаме разликата между тези команди. И двете DEL и UNLINK освободете ключовата част в режим на блокиране. И разликата е в начина, по който те освобождават стойностната част.

DEL винаги освобождава стойностната част в режим на блокиране. Ако обаче стойността е твърде голяма, напр. твърде много разпределения за голям LIST или HASH , блокира Redis за дълго време. За да разреши проблема, Redis внедрява UNLINK команда, т.е. „неблокиращо“ изтриване.

Всъщност, UNLINK е НЕ винаги неблокиращо/асинхронно . Ако стойността е малка, напр. размера на LIST или HASH е по-малко от 64 , стойността ще бъде освободена незабавно. По този начин UNLINK е почти същото като DEL , с изключение на това, че струва няколко повече извиквания на функции от DEL . Ако обаче стойността е голяма, Redis поставя стойността в списък и стойността ще бъде освободена от друга нишка, т.е. неблокиращата свободна. По този начин основната нишка трябва да извърши известна синхронизация с фоновата нишка и това също е цена.

В заключение, ако стойността е малка, DEL е поне толкова добър, колкото UNLINK . Ако стойността е много голяма, напр. LIST с хиляди или милиони артикули, UNLINK е много по-добре от DEL . Винаги можете безопасно да замените DEL с UNLINK . Ако обаче установите, че синхронизирането на нишките се превръща в проблем (многонишковостта винаги е главоболие), можете да се върнете към DEL .

АКТУАЛИЗИРАНЕ:

От Redis 6.0 има нова конфигурация:lazyfree-lazy-user-del . Можете да го зададете на да и Redis ще изпълни DEL команда, сякаш изпълнява UNLINK команда.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. задайте ключ за изтичане в определено време, когато използвате Spring кеширане с Redis

  2. Laravel - Последователно изпълнение на задачи

  3. Свързване на Redis контейнер с друг контейнер (Docker)

  4. Как да вложите списък в структура в Redis, за да намалите най-високото ниво?

  5. Намиране на ключове с помощта на заместващи знаци