Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Redis:Làm thế nào để đặt một khóa bằng giá trị của khóa khác?

Bạn có thể thực hiện việc này bằng tập lệnh Lua:

redis.call('SET', KEYS[2], redis.call('GET', KEYS[1])); return 1;
  1. KEYS1 là khóa nguồn
  2. KEYS2 là khóa đích

Ví dụ dưới đây sử dụng SCRIPT LOAD để tạo tập lệnh và gọi nó bằng cách sử dụng EVALSHA truyền các đối số sau:

  1. SHA1 được trả về từ quá trình tải tập lệnh
  2. a 2 cho số khóa sẽ được chuyển
  3. Khóa nguồn
  4. Chìa khóa đích.

Đầu ra:

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"

Nó có vẻ là rất nhiều thứ so với việc chỉ đơn giản thực hiện GET và sau đó là SET, nhưng khi bạn đã tải tập lệnh (và ghi nhớ SHA1) thì bạn có thể sử dụng lại nó nhiều lần.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để lưu và truy xuất chuỗi có dấu trong redis?

  2. Redis / Node.js - 2 client (1 pub / sub) gây ra sự cố ghi

  3. làm cách nào để giết những khách hàng rảnh rỗi của redis

  4. Các phím sắp xếp của Spring Redis

  5. NodeJs - Sử dụng redis, kết nối redis với express