读取数据流程
(1) 客户程序从Redis读取数据,如果读取到则返回
(2) 如果没有读取到,则从数据库抓取数据
(3) 从数据库抓取到的数据存储到Redis
写入数据流程
(1) 客户程序将数据写入Redis
(2) 将数据写入数据库
特点:
节省在网络延迟的时间:通过pipeline方式当有大批量的操作时候,我们可以节省很多原来浪费在网络延迟的时间,使用Pipeline在对Redis批量读写的时候,性能上有非常大的提升。
缺点:
1、打包的命令不易过多,消耗内存:需要注意到是用pipeline方式打包命令发 送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。所以并不是打包的命令越多越好
2、Pipeline是责任链模式,模式的缺点是,每次它对于一个输入(或者一次请求)都必须从链头开始遍历(参考Http Server处理请求就能明白),这确实存在一定的性能损耗。
基础方法:
实例Pipeline 对象
jr = new Jedis("10.10.224.44", 6379);
Pipeline pipeline= jr.pipelined();
pipeline.incr("testKey2"); 返回ID值
pipeline.set("p" + i, "p" + i);
pipeline.setex(keyString, time, json); 设置请求信息
pipeline.zadd(keyString, dPrice, json); 向原有的set集合追加对象
pipeline.expire(keyString, time); 执行的有效时间
pipeline.zrem(key, member); 删除redis数据
pipeline.publish(keyString, json); 把请求发送出去
pipeline.sync(); 和publish同时使用,获取所有的响应