Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Dapatkan indeks item berdasarkan nilai dalam daftar redis

Saya tidak tahu detail klien nodejs untuk ini, tetapi berikut ini adalah implementasi dari perintah indexOf yang sangat sederhana di lua.

Dalam file saya indexof.lua saya memiliki kode berikut:

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

Mari dorong beberapa nilai ke mylist .

> rpush mylist foo bar baz qux
(integer) 4

Kita dapat menggunakan skrip lua untuk menemukan indeks dari nilai apapun di dalam daftar. Perintahnya adalah O(N).

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

indeks bar adalah 1

> lindex mylist 1
"bar"

indeks nil adalah -1

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

Lihat http://redis.io/commands/eval dokumentasi lebih lanjut tentang perintah EVAL.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kapan harus mematikan Halaman Besar Transparan untuk ditampilkan kembali?

  2. Tingkat-Batasi API (musim semi MVC)

  3. Statistik Redis

  4. Bagaimana menerapkan multitenancy untuk redis di boot musim semi

  5. Kunci Kedaluwarsa Redis Data Musim Semi