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

Nhận chỉ mục của một mục theo giá trị trong danh sách redis

Tôi không biết chi tiết về ứng dụng nodejs cho việc này, nhưng sau đây là cách triển khai lệnh indexOf rất đơn giản trong lua.

Trong tệp của tôi indexof.lua tôi có mã sau:

local key = KEYS[1]
local obj = ARGV[1]
local items = redis.call('lrange', key, 0, -1)
for i=1,#items do
    if items[i] == obj then
        return i - 1
    end
end 
return -1

Cho phép đẩy một vài giá trị vào mylist .

> rpush mylist foo bar baz qux
(integer) 4

Chúng ta có thể sử dụng tập lệnh lua để tìm chỉ mục của bất kỳ giá trị nào trong danh sách. Lệnh là O (N).

$ redis-cli --eval indexof.lua mylist , bar
(integer) 1

chỉ mục của bar là 1

> lindex mylist 1
"bar"

chỉ mục của nil là -1

$ redis-cli --eval indexof.lua mylist , nil
(integer) -1

Xem http://redis.io/commands/eval tài liệu bổ sung về lệnh EVAL.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách thông báo cho Khách hàng biết vị trí chủ nhân của Redis mới đang sử dụng Sentinel

  2. Làm cách nào để kết nối với vùng chứa Redis bằng Docker Compose?

  3. Laravel tất cả các ID phiên với trình điều khiển Redis

  4. Tìm kiếm các giá trị của redis db

  5. Phơi sáng Redis với Bộ điều khiển Ingress Nginx