有没有办法批量读取 redis 列表?
Is there a way for reading a redis list in bulks?
假设我们有一个包含数十万个元素的redis 集合。由于 smember
命令进行预加载,它仅通过此 一个命令 获取所有元素,因此它消耗了太多时间。我想知道有没有办法以批量或流的形式读取 Redis 数据?
批量
来自 Redis Set
数据结构的数据可以使用 SSCAN 命令批量读取。
> sadd set a
(integer) 1
> sadd set b
(integer) 1
> sadd set c
(integer) 1
> SMEMBERS set
1) "c"
2) "b"
3) "a"
> SSCAN set 0 COUNT 2
1) "1" // <-- cursor for following SSCAN
2) 1) "b"
2) "a"
> SSCAN set 1 COUNT 2 // <-- cursor from previous SSCAN
1) "0" // <-- cursor=0 indicating complete iteration
2) 1) "c"
流
Redis 不直接支持流式传输 Set
结构数据。
假设我们有一个包含数十万个元素的redis 集合。由于 smember
命令进行预加载,它仅通过此 一个命令 获取所有元素,因此它消耗了太多时间。我想知道有没有办法以批量或流的形式读取 Redis 数据?
批量
来自 Redis Set
数据结构的数据可以使用 SSCAN 命令批量读取。
> sadd set a
(integer) 1
> sadd set b
(integer) 1
> sadd set c
(integer) 1
> SMEMBERS set
1) "c"
2) "b"
3) "a"
> SSCAN set 0 COUNT 2
1) "1" // <-- cursor for following SSCAN
2) 1) "b"
2) "a"
> SSCAN set 1 COUNT 2 // <-- cursor from previous SSCAN
1) "0" // <-- cursor=0 indicating complete iteration
2) 1) "c"
流
Redis 不直接支持流式传输 Set
结构数据。