今天往redis set 数据类型 中批量添加值的时候遇到问题
他倒是支持多个值 可我却不能确定我添加多少个值
redisTemplate.opsForSet().add("key","value1","value2","value3");
点进去 redisTemplate的添加方法中看看 可以看到它规定的value值的个数 是可变的
ps:无奖竞猜一下 能看出IDEA的背景图片是谁么?
一开始我的想法是写个循环每次添加一个
但是这样 太low了 而且效率也不行(大概一秒钟处理1w条) 也容易将redis搞宕机
for (int i = 0; i < 1000000; i++) {
redisTemplate.opsForSet().add("key",i);
}
后来查阅过资料后发现一种写法 原理也很简单 因为可变参数都是用数组去接收的 所以我直接传入一个数组就行 亲测好使(添加100w条数据 花费2.5秒)
Set set = new HashSet<>();
for (int i = 1; i < 1000000; i++) {
set.add(i);
}
redisTemplate.opsForSet().add("key",set.toArray());