sql >> Databasteknik >  >> NoSQL >> Redis

Redis :Hur ställer man in en nyckel lika med värdet på en annan nyckel?

Du kan göra detta med ett Lua-skript:

redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
  1. KEYS1 är källnyckeln
  2. KEYS2 är målnyckeln

Exemplet nedan använder SCRIPT LOAD för att skapa skriptet och anropar det med EVALSHA och skickar följande argument:

  1. SHA1 returnerades från skriptladdningen
  2. en 2 för antalet nycklar som kommer att skickas
  3. Källnyckeln
  4. Målnyckeln.

Utdata:

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"

Det verkar vara mycket grejer jämfört med att bara göra en GET och sedan s SET, men när du har laddat skriptet (och memorerat SHA1) kan du återanvända det upprepade gånger.



  1. Heroku Redis - GUI och minnesoptimering

  2. Docker:ändra mapp där dockningsvolymer ska lagras

  3. MongoDB $pull array 2 nivå

  4. Ta bort med _id i MongoDB-konsolen