场景应用

Redis入门-第二章 Redis的概述

对着背影说爱祢 提交于 2019-11-28 08:33:43
第二章 Redis的概述 用c语言开发的,开源的高性能的键值对的数据库,通过提供多种键值数据类型来适应不同场景下的存储需求。 支持的键值数据类型: 1.字符串类型 2.列表类型 3.有序集合类型 4.散列类型 5.集合类型 Resdis应用场景: 1.缓存:数据的查询、新闻或商品内容,把这些数据放入缓存 2.聊天室在线好友列表 3.任务队列:秒杀、抢购 4网站访问统计 5.数据过期处理(精确到毫秒) 6.应用排行榜 7.分布式集群架构中的session分离 来源: https://blog.csdn.net/sinat_27680127/article/details/100045262

Redis消息队列实现秒杀

心已入冬 提交于 2019-11-28 03:19:46
本文转自: https://blog.csdn.net/weixin_39278982/article/details/81216416 消息队列的应用场景例如:秒杀、抢单功能。 下面写个Demo简单实现一下秒杀,也就是抢购。 首先创建一个lpush.html文件,代码如下: <!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="jquery-3.2.1.min.js" ></script> <script> function push(uid){ $('#msg'+uid).html('请耐心等待.......'); $.get('lpush.php',{"uid":uid},function (data){ if(data == 1 ){ $('#msg'+uid).html('抢购成功!!'); }else{ $('#msg'+uid).html('抢购失败!!'); } }); } </script> </head> <body> <span id="msg5"></span><br>

git 不同场景应用

房东的猫 提交于 2019-11-28 00:21:43
git pull 时每次都要输入用户名和密码的解决办法 git bash进入你的项目目录,输入: git config --global credential.helper store 用远程的强制覆盖本地 使用场景,本地代码修改错误需要强制远程服务器最新版本覆盖本地版本 git fetch --all git reset --hard origin/master git pull 强制覆盖本地命令(单条执行):(有时无效) git fetch --all && git reset --hard origin/master && git pull 注:只能覆盖远程仓库存在的文件,无法覆盖本地新增而却没有add添加到暂存区的文件。 删除文件(包括目录) rm -r home.txt // 删除home.txt文件 -r 是递归删除子嵌套的文件 新建目录 mkdir home // 创建home目录 新建文件 touch home.txt // 新建home.txt文件 用本地代码覆盖远程 使用场景:同事提交了到远程的代码与自己的本地有冲突风险,且本地代码是最新的,远程是旧的。 风险:同事的代码会丢失。 第一步:git add . // 添加当前修改的代码到暂存区 第二步:gigit commit -m 'fix' // 提交暂存区的内容到本地版本库 第三步:git pull // 注

消息队列的使用场景

余生长醉 提交于 2019-11-27 23:56:25
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式 (1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端 (2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。并行方式处理的请求量是10次(1000/100) 小结:如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题呢? 引入消息队列,将不是必须的业务逻辑,异步处理

Kubernetes容器云平台建设实践

非 Y 不嫁゛ 提交于 2019-11-27 18:41:20
【51CTO.com原创稿件】Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经成为应用容器化平台的标准,越来越受到企业的青睐,在生产中也应用的越来越广泛。 我们的容器平台建设从2016年开始,大致经历了探索预研、体系建设和平台落地这样三个阶段。 下面就从Kubernetes的网络、存储、集群管理和监控与运维几个方面来分享下我们容器云平台建设走过的历程,希望给大家一些思考和启发。 一、kubernetes网络 容器网络发展到现在,已经是双雄会的格局。双雄会其实指的就是Docker的CNM和Google、CoreOS、Kuberenetes主导的CNI。首先明确一点,CNM和CNI并不是网络实现,他们是网络规范和网络体系,从研发的角度他们就是一堆接口,你底层是用Flannel也好、用Calico也好,他们并不关心,CNM和CNI关心的是网络管理的问题。 网络需求调研发现,业务部门主要关注以下几点:1、容器网络与物理网络打通2、速度越快越好3、改动越少越好4、尽可能少的风险点。 容器的网络方案大体可分为协议栈层级、穿越形态、隔离方式这三种形式。 协议层级:二层比较好理解,在以前传统的机房或虚拟化场景中比较常见,就是基于桥接的 ARP+MAC 学习,它最大的缺陷是广播

(26)zookeeper的功能与应用场景

偶尔善良 提交于 2019-11-27 17:58:52
Zookeeper概念简介: Zookeeper 是一个分布式 协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper 是为别的分布式程序 ( 用户的分布式程序 ) 服务的 B、Zookeeper本身就是一个分布式程序 (只要有半数以上节点存活, zk 就能正常服务) C、Zookeeper 所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、 虽然说可以提供各种服务,但是 zookeeper 在底层其实只提供了两个功能 : 管理 ( 存储,读取 ) 用户程序提交的数据 ( 一般是状态数据 ) ; 并为用户程序提供数据节点监听服务; Zookeeper的应用场景: 1.计算机状态的实时监控 2.服务器主从选举 3.配置管理 三个场景中的第三方就是zookeeper,能够解决分布式场景中的各种问题。Zookeeper是高可靠性的第三方,内部是一个集群程序,集群中节点奇数台,只要半数以上节点存活,就可以提供正常服务。 来源: https://www.cnblogs.com/paradis/p/11371469.html

Python库指南

左心房为你撑大大i 提交于 2019-11-27 16:55:30
Python库指南 1、time模块 作用:time模块是一个时间模块,与datetime模块它提供的功能是更加接近于操作系统层面。 应用场景:平时用的比较多的时间戳,等时间方面的操作,在爬虫方面经常会看到用time模块生成的时间戳放进请求头或者参数中。 2、datetime模块 作用:datetime模块也是一个时间模块,它在time模块的基础上再封装了,提供很多我们常用的时间函数。 应用场景:在日常代码中经常可见用于对时间的操作,如计算当日的时间年月日时分秒,或者年月日等,以及对时间日期的操作加减,比time模块用得更多。 3、random模块 作用:random是一个用于给你返回一个随机数的模块,但这个随机到一定规模还是有规律的。 应用场景:比如我们代码常需要获取随机数,验证码,给爬虫设置随机时间等场景。 4、os模块 作用:os模块是与操作系统交互的一个接口,可以处理文件和目录这些我们日常手动需要做的操作。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。 应用场景:我们平时给文件的操作,如拼接文件路径、获取文件的路径,主要用于对文件和目录的操作。 5、sys模块 作用:sys是system的缩写,用来获取操作系统和解释器的一些配置,设置及操作。 应用场景:我们需要获取命令输入的参数,给文件添加进环境变量,等与解释器层面的操作。 6、Json模块 作用

学习Python,主要应用场景有哪些?

烂漫一生 提交于 2019-11-27 16:44:12
作为一种通用编程语言,Python的应用场景几乎是无限的。我们可以在任何场景使用Python,例如,从网站和游戏开发,到机器人和航天飞机控制等。从Python官网给出的例子来看,Python有以下几个主要的应用场景: 1.Web开发 Python语言能够满足快速迭代的需求,非常适合互联网公司的Web开发应用场景。Python用作Web开发已有十多年的历史,在这个过程中,涌现出了很多优秀的Web开发框架,如Django、Pyramid、Bottle、Tornado、Flask和web2py。许多知名网站都是使用Python语言开发,如豆瓣、知乎、Instagram、Pinterest、Dropbox等。这一方面说明了Python作为Web开发的受欢迎程度,另一方面也说明Python语言用作Web开发经受住了大规模用户并发访问的考验。 2.用户图形接口(GUI) 我们可以使用Python标准库的tkInter模块进行GUI编程,也可以使用PyGObject、PyQt、PySide、Kivy、wxPython等编写GUI应用程序。使用Python程序可以轻松地开发出一个可移植的应用程序。例如,TKinterGUI可以不做任何改变就能运行在Windows、XWindows和MacOS等平台上。 3.数值计算和科学计算

315道Python常见面试题

蹲街弑〆低调 提交于 2019-11-27 13:49:23
第一部分,Python基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java、PHP、C、C#、C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节的关系? b、B、KB、MB、GB 的关系? 请至少列举5个 PEP8 规范(越多越好)。 通过代码实现如下转换: 二进制转换成十进制:v = “0b1111011” 十进制转换成二进制:v = 18 八进制转换成十进制:v = “011” 十进制转换成八进制:v = 30 十六进制转换成十进制:v = “0x12” 十进制转换成十六进制:v = 87 请编写一个函数实现将IP地址转换成一个整数。 如 10.3.9.12 转换规则为: ​ 10 00001010 3 00000011 ​ 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ? python递归的最大层数? 求结果: v1 = 1 or 3 v2 = 1 and 3 v3 = 0 and 2 and 1 v4 = 0 and 2 or 1 v5 = 0 and 2 or 1 or 4 v6 = 0 or Flase and 1 ascii、unicode、utf-8、gbk 区别?

谈MongoDB的应用场景

白昼怎懂夜的黑 提交于 2019-11-27 13:20:58
转载自:http://blog.csdn.net/adparking/article/details/38727911 MongoDB的应用场景在网上搜索了下,很少介绍关于传统的信息化应用中如何使用MongoDB数据库方面的内容,比较多的还是介绍日志的采集和存储,小文件的分布式存储,类似互联网微博应用的数据存储等方面的内容。在这里思考下传统企业信息化系统中的应用可行性。 首先对于NoSQL数据库,在数据库建模上需要重点考虑,彻底放弃传统的关系型数据库建模方法,如果将传统的关系型数据库表原封不动的映射到NoSQL数据库,很多NoSQL数据库本身的优点特性反而无用武之地。其中最重要的就是转化为面对对象的思维模式,更加关注领域对象和实体信息。MongoDB数据库的集合本身就是一个可以包罗万象的层次化的文档对象,集合本身还可以包含子集合,形成一个完整意义上的对象。 如果拿一个最简单的企业客户信息管理功能来说,可以看到首先要维护有哪些企业客户,企业客户的常用联系人,每个人的联系方式,企业相关的资料文档,企业的地址信息,企业的账户信息,争取企业的拜访记录等,这里讲的就是一个最简单的企业客户域的对象信息。 按道理来说企业信息就是一个完整的对象,企业附属对象都从属于企业这个对象,企业这个信息没有了其余附属对象信息的生命周期也就结束