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

Redis - Използване на стойност Incr в транзакция

Приетият отговор по-горе е ненужно сложен. При това обстоятелство не е необходимо да използвате мултимедийно устройство или часовник. INCR вече е атомен и е проектиран точно за този сценарий. Редактиране:Благодарение на Itamar Haber &robe007 за промяната на приетия отговор. :)

Можете просто да направите това:

var name = 'Josh';
client.incr('id', function(err, id) {
    client.hmset('user:' + id, 'username', name);
});

Правейки горното, INCR автоматично заключва ключа "id", увеличава го вместо вас, отключва го и ви го връща. По този начин няма начин някой да получи дублиран потребителски идентификатор, използвайки кода по-горе. Освен това има предимството, че никога не е в състояние да се провали, за разлика от WATCH/GET, където ще трябва да проверявате за неуспехи и да изпълнявате заявките си отново, ако не успеят.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Какъв е смисълът на множество Redis бази данни?

  2. Работа на декоратора @cache_page() в django-redis-cache

  3. Laravel 4:Извикване на недефиниран метод Redis::connection()

  4. Когато стартирам цвете, получавам следното:dbm.error:типът db е dbm.gnu, но модулът не е наличен

  5. Сериализация и десериализация на Redis