当前位置: 首页 > news >正文

莱州市住房和规划建设管理局网站做二手电脑的网站

莱州市住房和规划建设管理局网站,做二手电脑的网站,软件开发人员工资标准,安徽专业网站建设创新Redis的批处理优化 大量的数据要导入到Redis中,要怎么处理? 单个命令的执行流程 客户端 发送命令 到Redis服务端,服务端 执行命令 ,然后 返回结果 给客户端。 共需要 1次往返的网络传输耗时 1次Redis执行命令耗时 。 N条命令批量…

Redis的批处理优化

大量的数据要导入到Redis中,要怎么处理?

单个命令的执行流程

客户端 发送命令 到Redis服务端,服务端 执行命令 ,然后 返回结果 给客户端。

共需要 1次往返的网络传输耗时 + 1次Redis执行命令耗时

N条命令批量执行

由于redis服务端处理命令的速度是很快的,是在微秒级别的,而网络IO进行发送命令和返回结果的速度是很慢的,是在毫秒级别的,所以我们可以批量发送多条命令,减少网络IO的次数,提高性能。

Redis提供了很多Mxxx这样的命令,可以实现批量插入数据,就例如:mset、hmset。

10万条商品数据的插入,使用批处理优化(每1000条批量发送一次),比单个单个的插入速度快约177倍(44秒 -> 248毫秒)。大大减少了网络事件。

Pipeline

hmset、sadd等命令的key都不能改变,批处理只能处理同一个key下的元素,而mset也只能批处理String类型的key,使用redis服务端提供的原生的命令不太好做批处理,有很多限制,所以可以使用一些Redis客户端提供的Pipeline功能,更丰富。

可以往pipeline里面不断地添加命令,然后如果想要发送给客户端执行了,就可以使用sync()方法,批量发给客户端执行。代码示例如下:

@Test
void testPipeline() {// 创建管道Pipeline pipeline = jedis.pipelined();for (int i = 1; i <= 100000; i++) {// 放入命令到管道pipeline.set("testkey_" + i, "value_" + i);if (i % 1000 == 0) {// 每放入1000条命令,批量执行pipeline.sync();}}
}

集群模式下的批处理

在集群下,由于每个Redis实例都负责管各自的插槽部分,所以批处理的所有key都需要落在一个插槽中,不然的话就会导致执行失败,因为多条命令是一起传输的,只能一次网络IO到目标Redis,这些命令不能拆分,如果目的地是不同的Redis实例的话,他们也没办法拆开来路由。

所以可以在客户端可以提前计算出每个key对应的slot,然后根据slot一致分为一组。每组都各自用pipeline批处理。这里之后就可以选择 串行 或者 并行 执行了。因为不同的插槽是不同的redis实例,所以可以并行更加节省时间。

http://www.dtcms.com/a/413537.html

相关文章:

  • 网站文章优化怎么做网页此站点不安全
  • 网站怎么做右上角消息提醒网站运营暂停
  • 英文外贸网站设计有哪些建设网站公司吗
  • 云南建设工程网站制作app的费用
  • 企业网站规范wordpress中文开发文档
  • 2345网址大全设主页怎么设置用仿网站做优化有效果吗
  • 织梦网站档目管理空白致设计
  • 网站页面设计方案wordpress主题 外贸网站模板
  • 河北唐山网站建设佳木斯建设工程交易中心网站
  • 个人网站开发背景及意义网站开发 报价单 表格
  • 南京建网站找哪家好wordpress视频笔记
  • 网站不提交表单公司成立后网站建设
  • 福州网站建设策划学it到哪里学比较好
  • 做网站的前途百度竞价广告投放
  • 广州网站设计培训班做网站的装饰标语
  • 手机可以访问的网站怎么做做网站厂家
  • 电子商务网站开发 什么框架免费域名注册申请
  • 辽宁网站建设招标注册网站需要什么条件
  • php网站后台登陆地址网址大全免费
  • 山东网站建设公司哪家专业天长网站建设
  • 门户网站设计思路江苏省企业年报网上申报入口
  • 网站建设费是业务宣传费吗山东公司注册网站
  • 国外网站视频播放器crm管理软件
  • 东莞制作网站的联系方式大庆做网站
  • 漫画网站php源码网站首页设计特点有哪些
  • 做网站用的大图移动商城积分和积分区别
  • 温州网站优化关键词电脑显示无法运行wordpress
  • 足彩网站怎样做推广没有网站能做淘宝客吗
  • 沈阳做公司网站的公司网站的程序怎么做的
  • 手机论坛网站模板英国有哪些做折扣的网站有哪些