Как читать наборы в Redis?

У меня есть простой redis set с более чем 1 миллионом заметок. Я добавляю это, используя sadd

Как я могу прочитать этот набор по разделам?

Я имею в виду чтение первых 100 000 ключей и после 200 000?


person Griboedov    schedule 12.12.2016    source источник


Ответы (1)


Я не уверен, что вы имеете в виду под «по разделам», но если вы хотите читать по частям, SSCAN ваш друг.

SSCAN key cursor [MATCH pattern] [COUNT count]

Вы начинаете со значения 0 в курсоре и каждый раз получаете следующий идентификатор курсора и COUNT элементов. Когда больше нечего читать, вы получаете курсор 0.

Например:

# let's add 14 elements to a set
127.0.0.1:6379> SADD myset e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14
(integer) 14

# now let's scan it from the "beginning" (notice that it's not ordered)
127.0.0.1:6379> SSCAN myset 0 COUNT 10
1) "3"
2)  1) "e8"
    2) "e10"
    3) "e2"
    4) "e11"
    5) "e7"
    6) "e3"
    7) "e14"
    8) "e4"
    9) "e6"
   10) "e9"

# we got a cursor id of 3, let's give that to the next iteration!
127.0.0.1:6379> SSCAN myset 3 COUNT 10
1) "0"
2) 1) "e13"
   2) "e12"
   3) "e5"
   4) "e1"

# now we got a cursor id of 0, meaning we're done
person Not_a_Golfer    schedule 12.12.2016
comment
У меня есть функция в Python, которая принимает параметры: self, name,cursor, match, count. И я установил это apps. Как мне написать параметры? - person Griboedov; 12.12.2016
comment
Это правильно? items = r.sscan("apps", 400000, None, 700000)? - person Griboedov; 12.12.2016