Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Redis :Jak ustawić jeden klucz równy wartości innego klucza?

Możesz to zrobić za pomocą skryptu Lua:

redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
  1. KEYS1 to klucz źródłowy
  2. KEYS2 jest kluczem docelowym

Poniższy przykład używa SCRIPT LOAD do utworzenia skryptu i wywołuje go za pomocą EVALSHA przekazując następujące argumenty:

  1. SHA1 zwrócony z ładowania skryptu
  2. 2 oznacza liczbę kluczy, które zostaną przekazane
  3. Klucz źródłowy
  4. Klucz docelowy.

Wyjście:

redis 127.0.0.1:6379> set src.key XXX
OK
redis 127.0.0.1:6379> get src.key
"XXX"
redis 127.0.0.1:6379> SCRIPT LOAD "redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;"
"1119c244463dce1ac3a19cdd4fda744e15e02cab"
redis 127.0.0.1:6379> EVALSHA 1119c244463dce1ac3a19cdd4fda744e15e02cab 2 src.key target.key
(integer) 1
redis 127.0.0.1:6379> get target.key
"XXX"

Wydaje się, że jest to dużo rzeczy w porównaniu do zwykłego GET, a następnie s SET, ale po załadowaniu skryptu (i zapamiętaniu SHA1) możesz go wielokrotnie używać.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Logstash Web UI nie uruchamia się

  2. Redis, wygaśnięcie sesji i wyszukiwanie wsteczne

  3. Dlaczego podczas wywoływania skryptów Redis Lua występują tablice KEYS i ARGV?

  4. Redis — błąd:wartość nie jest prawidłową liczbą zmiennoprzecinkową

  5. Jaki jest sens REDIS w stosie ELK?