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

如何给给公司建立网站如何设计好酒店网站模板

如何给给公司建立网站,如何设计好酒店网站模板,成全视频免费观看在线看第6季高清,网站建设销售开场白前段时间在做用户画像的时候#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.zqtcl.cn/news/589396/

相关文章:

  • 网站设计 西安漂亮企业网站源码
  • 云南省科技网站网页设计师有前途吗
  • 漳州网站开发找出博大科技慈溪市建设局网站表格下载
  • 网站到期怎么续费公司网站asp源码
  • 多个域名 一个网站域名解析官网
  • 中国建设银行企业网站旅游网页代码模板
  • 湛江免费企业建站wordpress archives
  • 建个企业网站多少钱图书管理系统网站开发教程
  • 淘宝客网站建设详细教程wordpress转dz
  • 银川网站推广i深建官方网站
  • 有什么较好的网站开发框架娱乐网站模板
  • 宿迁网站建设托管wordpress 萝莉
  • 定制网站开发冬天里的白玫瑰制作复杂的企业网站首页
  • 网站开发及设计演讲海报免费做网站app下载
  • 做动态图片的网站吗自考网站建设与实践
  • 建外贸网站需要多少钱胖咯科技 网站建设
  • wordpress注明网站做微网站的第三方登录
  • 学网站建设维护网站公司建设公司
  • 做小型网站的公司wordpress 主题上传
  • 网站之家查询重庆市建设项目环境申报表网站
  • 网站建设基础及流程网站运营一个月多少钱
  • 南沙免费网站建设wordpress邮箱注册
  • 网站关键字优化软件网络营销推广方式包括?
  • 专做装修的网站pc端好玩的大型网游
  • 洞泾网站建设网易考拉的网站建设
  • 网站建设的市场调研杭州网络公司项目合作
  • 济源网站制作电子商务平台有哪些
  • 网站轮播图怎么设计河南省住房城乡建设厅网站首页
  • o2o商城网站建设wordpress后台密码忘记了怎么办
  • 网站排版策划公司官网网站建设想法