sql >> Database teknologi >  >> NoSQL >> Redis

Redis :Hvordan sætter man en nøgle lig med værdien af ​​en anden nøgle?

Du kan gøre dette med et Lua-script:

redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
  1. KEYS1 er kildenøglen
  2. KEYS2 er målnøglen

Eksemplet nedenfor bruger SCRIPT LOAD til at oprette scriptet og kalder det ved hjælp af EVALSHA og sender følgende argumenter:

  1. SHA1'en vendte tilbage fra scriptindlæsningen
  2. en 2 for antallet af nøgler, der sendes
  3. Kildenøglen
  4. Målnøglen.

Output:

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 ser ud til at være en masse ting sammenlignet med blot at lave en GET og derefter s SET, men når du først har indlæst scriptet (og husket SHA1), kan du genbruge det gentagne gange.



  1. MongoDB med Mongoid i skinner - Geospatial indeksering

  2. Hvordan opdaterer man _id'et for et MongoDB-dokument?

  3. MongoDB-relationer:indlejring eller reference?

  4. Sådan organiserer du et mange til mange forhold i MongoDB