面试突击 | Redis 如何从海量数据中查询出某一个 Key?附视频
1 考察知识点 本题考察的知识点有以下几个: Keys 和 Scan 的区别 Keys 查询的缺点 Scan 如何使用? Scan 查询的特点 2 解答思路 Keys 查询存在的问题 Scan 的使用 Scan 的特点 3 Keys 使用相关 1)Keys 用法如下 2)Keys 存在的问题 此命令没有分页功能,我们只能一次性查询出所有符合条件的 key 值,如果查询结果非常巨大,那么得到的输出信息也会非常多; keys 命令是遍历查询,因此它的查询时间复杂度是 o(n),所以数据量越大查询时间就越长。 4 Scan 使用相关 我们先来模拟海量数据,使用 Pipeline 添加 10w 条数据,Java 代码实现如下: import redis.clients.jedis.Jedis; import redis.clients.jedis.Pipeline; import utils.JedisUtils; public class ScanExample { public static void main(String[] args) { // 添加 10w 条数据 initData(); } public static void initData(){ Jedis jedis = JedisUtils.getJedis(); Pipeline pipe = jedis