今天是要做一个删除redis Hash 结构中多个hash filed 的问题,提供的方法有:
operations.delete(key,hashKeys);
其中hashkeys为可变长度,知不知道可变长度在英语怎么说?
Variable Arguments (Varargs)
表示可变长度的参数的那三个点呢 用three periods 表示
而我得到的要删除的filed是一个集合,里面可以有1到多个数据,所以用可变参数不好做,于是看到了pipeline这种方式,当然像我们这种第一次接触的,尴尬的地方就在于看了一些例子,做了,可以用了,却不知道这么用好不好,会不会有什么问题,说不出个一二来。大概这就是底层码农和高级研发人员的区别。上代码:
HashOperations<String,Long,Object> operations = redisTem.opsForHash();
redisTem.executePipelined(new RedisCallback(){
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException{
connection.openPipeline();
keyList.forEach(k->operations.delete(key, k));
connection.closePipeline();
return null;
}
});
pineline是把请求一次性的都传递到redis,然后由redis执行。
遇到新技术或者自己没学过的,都会有先完成出问题再说修的问题,但你花个一两个月先学一遍再去做也不可能,这里就要求一定的学习成本和试错成本。
网友评论