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

深圳横岗网站建设外贸建站是什么意思

深圳横岗网站建设,外贸建站是什么意思,tiktok跨境电商运营,公司网站怎么做才能有官网二字前段时间在做用户画像的时候#xff0c;遇到了这样的一个问题#xff0c;记录某一个商品的用户购买群#xff0c;刚好这种需求就可以用到Redis中的Set#xff0c;key作为productID#xff0c;value就是具体的customerid集合#xff0c;后续的话#xff0c;我就可以通过p… 前段时间在做用户画像的时候遇到了这样的一个问题记录某一个商品的用户购买群刚好这种需求就可以用到Redis中的Setkey作为productIDvalue就是具体的customerid集合后续的话我就可以通过productid来查看该customerid是否买了此商品如果购买了就可以有相关的关联推荐当然这只是系统中的一个小业务条件这时候我就可以用到SADD操作方法代码如下static void Main(string[] args){ConnectionMultiplexer redis ConnectionMultiplexer.Connect(192.168.23.151:6379);var db redis.GetDatabase();var productID string.Format(productID_{0}, 1);for (int i 0; i 10; i){var customerID i;db.SetAdd(productID, customerID);}} 一问题但是上面的这段代码很明显存在一个大问题Redis本身就是基于tcp的一个Request/Response protocol模式不信的话可以用wireshark监视一下从图中可以看到有很多次的192.168.23.1 192.168.23.151 之间的数据往返从传输内容中大概也可以看到有一个叫做productid_xxx的前缀那如果有百万次局域网这样的round trip那这个延迟性可想而知肯定达不到我们预想的高性能。二解决方案【Batch】刚好基于我们现有的业务我可以定时的将批量的productid和customerid进行分组整合然后用batch的形式插入到某一个具体的product的set中去接下来我可以把上面的代码改成类似下面这样static void Main(string[] args){ConnectionMultiplexer redis ConnectionMultiplexer.Connect(192.168.23.151:6379);var db redis.GetDatabase();var productID string.Format(productID_{0}, 1);var list new Listint();for (int i 0; i 10; i){list.Add(i);}db.SetAdd(productID, list.Select(i (RedisValue)i).ToArray());} 从截图中传输的request,response可以看到这次我们一次性提交过去极大的较少了在网络传输方面带来的尴尬性。。三再次提出问题product维度的画像我们可以解决了但是我们还有一个customerid的维度也就是说我需要维护一个customerid为key的set集合其中value的值为该customerid的各种平均值比如说“总交易次数”“总交易金额”。。。等等这样的聚合信息然后推送过来的是批量的customerid也就是说你需要定时维护一小嘬set集合在这种情况下某一个set的批量操作就搞不定了。。。原始代码如下static void Main(string[] args){ConnectionMultiplexer redis ConnectionMultiplexer.Connect(192.168.23.151:6379);var db redis.GetDatabase();//批量过来的数据customeridlist ordertotalprice具体业务逻辑省略var orderTotalPrice 100;var customerIDList new Listint();for (int i 0; i 10; i){customerIDList.Add(i);}//foreach更新每个redis 的set集合foreach (var item in customerIDList){var customerID string.Format(customerid_{0}, item);db.SetAdd(customerID, orderTotalPrice);}} 四解决方案【PipeLine】上面这种代码在生产上当然是行不通的不过针对这种问题redis早已经提出了相关的解决方案那就是pipeline机制原理还是一样将命令集整合起来通过一条request请求一起送过去由redis内部fake出一个client做批量执行操作代码如下static void Main(string[] args){ConnectionMultiplexer redis ConnectionMultiplexer.Connect(192.168.23.151:6379);var db redis.GetDatabase();//批量过来的数据customeridlist ordertotalprice具体业务逻辑省略var orderTotalPrice 100;var customerIDList new Listint();for (int i 0; i 10; i){customerIDList.Add(i);}var batch db.CreateBatch();foreach (var item in customerIDList){var customerID string.Format(customerid_{0}, item);batch.SetAddAsync(customerID, orderTotalPrice);}batch.Execute();} 然后我们再看下面的wireshark截图可以看到有很多的SADD这样的小命令这就说明有很多命令是一起过去的大大的提升了性能。最后可以再看一下redis数据也是有的是不是很爽~~~ 192.168.23.151:6379 keys *1) customerid_02) customerid_93) customerid_14) customerid_35) customerid_86) customerid_27) customerid_78) customerid_59) customerid_6 10) customerid_4 好了先就说到这里了希望本篇对你有帮助。
http://www.pierceye.com/news/287446/

相关文章:

  • 在线制作插画网站网站建设有哪些公司
  • 合肥的网站建设剂屏自己可以做开奖网站吗
  • 官网设计比较好看的网站学校网站建设对教学的意义
  • 济南建站推荐企汇优见效付款毕设代做网站招聘
  • 泰然建设网站免费软件app下载大全正能量网站
  • 张掖市网站建设北京代理记账财务公司
  • 中铁建设集团网站网络公司手机网站
  • 站长工具是什么意思建设银行网站 开户行怎么查
  • 做简历模板的网站都有哪些wordpress是啥东西
  • 网站流量渠道湖州做网站优化
  • 汽车网站哪个好预付的网站开发费用怎么入账
  • 网站代管理哪个网站有介绍拿到家做的手工活
  • 惊艳的网站网站建设实训过程报告
  • 秦皇岛做网站公司企业网站备案需要什么
  • 做网站必须开厂吗科协网站建设建议
  • 西宁 网站建设凡科做视频网站
  • wordpress中文主题 wp-cmsseo排名赚钱
  • 优质的网站制作在线查企业信息查询平台
  • 天津网站建设学习电子商务企业网站建设实训报告
  • 怎么让网站收录在google怎么免费安装wordpress主题
  • 在windows2003上做网站浙江网
  • 宣威网站wordpress把logo变大
  • 网站设计模式有哪些商城网站营销方案
  • mvc做的网站wordpress 新建php文件
  • 西安网站seo外包个人开发者
  • 注册网站需要visa怎么办济宁万达网站建设
  • niche网站建设wordpress安装文本编辑器
  • 网站建设三种方法免费的导航页
  • 微信到wordpress杭州网站怎么做seo
  • 沙田镇仿做网站网站加速器quickq