Redis优化——管道技术

redis请求量巨大时也会存在速度瓶颈

可以使用管道技术,redis客户端与服务器交互遵循TCP通讯协议,网络请求一次只能发一条命令(每一次set,get只能存取一条数据),高并发时会限制读取缓存的效率;而管道技术优点在于客户端可以一次发多条命令,结果也是一次性获取多条结果,能够提升缓存读取效率。

    private void pipeLine(){
        Jedis jedis = new Jedis();
        Pipeline pipeline = jedis.pipelined();
        String key = 1 + ":";
        String value = "value";
        pipeline.set(key,value);
        //获取所有的response
        pipeline.sync();
        pipeline.get(key);
    }

在Redis中,如果客户端使用管道发送了多条命令,那么服务器就会将多条命令放入一个队列中,这一操作会消耗一定的内存,所以管道中命令的数量并不是越大越好(太大容易撑爆内存),而是应该有一个合理的值。

又想到了管道技术其实和hmG(S)et有些相似,不过一个是高并发存取一个对象,一个将大量数据存储为hashMap数据结构后存取

你可能感兴趣的:(学习,工作,redis,java,缓存)