Redis使用管道提升性能

Redis服务是一种C/S模型,即客户端发起请求,服务端处理并返回结果给客户端,如果Redis客户端要发送很多条请求,后面的请求需要等待前面的请求处理完后才能进行处理,而且每个请求都存在往返时间,即使redis性能极高,当数据量足够大,也会极大影响性能,所以Redis为了改进该问题,引入了管道技术:可以在服务端未及时响应的时候,客户端也可以继续发送命令请求,做到客户端和服务端互不影响,服务端并最终返回所有服务端的响应,大大提高了C/S模型交互的响应速度;(比如批量对Redis操作)

1.在jedis中使用管道Pipeline

在jedis中使用管道Pipeline

Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.auth("123456");

Pipeline pipeline = jedis.pipelined();

//批量操作
for (int i=0; i<10000; i++) {
    pipeline.incr("k");
}
pipeline.sync();

2.redisTemplate使用管道Pipeline

List<Object> list = redisTemplate.executePipelined(new RedisCallback<Long>() {
    @Override
    public Long doInRedis(RedisConnection connection) throws DataAccessException {
        connection.openPipeline();
        for (int i = 0; i<100000; i++) {
            String key = "kkk"+i;
            connection.set(key.getBytes(), "1".getBytes());
        }
	//不能返回非空值
        return null;
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值