Możesz to zrobić za pomocą skryptu Lua:
redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
- KEYS1 to klucz źródłowy
- 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:
- SHA1 zwrócony z ładowania skryptu
- 2 oznacza liczbę kluczy, które zostaną przekazane
- Klucz źródłowy
- 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ć.