01 2019 档案

几分钟搞定redis存储session共享——设计实现
摘要:前面我们写过C#在redis中存储常用的5种数据类型demo,没看过的可以点击电梯直达:https://www.cnblogs.com/xiongze520/p/10267804.html 我们上一篇说到Windows7系统中使用nginx部署服务器集群:https://www.cnblogs.co 阅读全文

posted @ 2019-01-29 13:16 ExplorerMan 阅读(2597) 评论(0) 推荐(0) 编辑

抽屉之Tornado实战(9)--装饰器实现用户登录状态验证
摘要:当然今天讲的验证,不只Tornado会用,以后用到web框架都会用到,最常见的场景就是只有用户登陆了才能执行某些操作,所以在执行这些操作前要先做登陆状态的验证。 比如:点赞,发布,评论等需要验证,都需要用到if self.session【‘is_login’】进行判断,你可能觉得,这代码也不多啊,不 阅读全文

posted @ 2019-01-24 20:29 ExplorerMan 阅读(251) 评论(0) 推荐(0) 编辑

Tornado输出和响应头
摘要:1.输出 再来看看输出`write`,实际上,`write`并没有直接把数据返回给前端,而是先写到缓存区,函数结束之后才会返回到前端,我们验证如下 这里我们可以很明显看到,在有无`self.flush()`的时候,结果是不一样的。如果有的话,就可以先看到前面的输出,没有的话,要等到函数执行完才能够一 阅读全文

posted @ 2019-01-24 20:13 ExplorerMan 阅读(483) 评论(0) 推荐(0) 编辑

sqlalchemy 学习(二)scoped session
摘要:数据库设计的难点之一,是session生命周期的管理问题。sqlalchemy提供了一个简单的session管理机制,即scoped session。它采用的注册模式。所谓的注册模式,简单来说,是指在整个程序运行的过程当中,只存在唯一的一个session对象。 创建scoped session的方法 阅读全文

posted @ 2019-01-24 14:29 ExplorerMan 阅读(406) 评论(0) 推荐(0) 编辑

04:sqlalchemy操作数据库 不错
摘要:目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalchemy多对多关联 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 返回顶部 1、什么是 阅读全文

posted @ 2019-01-24 12:31 ExplorerMan 阅读(228) 评论(0) 推荐(0) 编辑

sqlalchemy(二)高级用法
摘要:本文将介绍sqlalchemy的高级用法。 外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增加user_id这个外键(一对多)。 接下来,调用user和address来添加数据, 此时,查看数据库,可以得到刚才插入的数据, jo 阅读全文

posted @ 2019-01-24 12:15 ExplorerMan 阅读(189) 评论(0) 推荐(0) 编辑

sqlalchemy(一)基本操作
摘要:sqlalchemy采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。 安装 需要安装MySQLdb pip install sqlalchemy 安装完成后,执行 >>>import sqlalchemy >>>sqlalchemy.__version__ 连 阅读全文

posted @ 2019-01-24 12:14 ExplorerMan 阅读(272) 评论(0) 推荐(0) 编辑

python SQLAlchemy自动生成models文件
摘要:1.安装SQLAcodegen pip install sqlacodegen 2.执行 sqlacodegen mysql://root:123456@127.0.0.1:3306/test > models.py 会在当前目录下生成models.py 3.如果是python3 会报错 No mo 阅读全文

posted @ 2019-01-24 11:06 ExplorerMan 阅读(365) 评论(0) 推荐(0) 编辑

脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明
摘要:常规建表语句: 解析脚本代码: 输出结果: sqlalchemy库官方文档:http://docs.sqlalchemy.org/en/latest/contents.html sqlalchemy库官方文档(中文):http://www.cnblogs.com/iwangzc/p/4112078. 阅读全文

posted @ 2019-01-24 11:03 ExplorerMan 阅读(426) 评论(0) 推荐(0) 编辑

序列化 SqlAlchemy 的结果为 json 字符串
摘要:http://my.oschina.net/gongshang/blog/395431?p=1 在设计 RESTful 的网站时,我们总是希望 ORM 框架返回的结果是可以直接给 View 层使用的 JSON 字符串。但是 Sqlalchemy 的返回结果直接使用 json.dumps(res) 会 阅读全文

posted @ 2019-01-24 10:59 ExplorerMan 阅读(293) 评论(0) 推荐(0) 编辑

sqlalchemy 使用pymysql连接mysql 1366错误
摘要:一、错误情况 mysql 5.7.2 \python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' fo 阅读全文

posted @ 2019-01-24 00:35 ExplorerMan 阅读(735) 评论(0) 推荐(0) 编辑

对Tornado异步操作Sqlalchemy方法的选定 不错
摘要:使用原因 在一个实时通讯的项目中,由于需要使用Websocket这一协议,便在Python框架中选定了Tornado,也同时使用了Sqlalchemy这一ORM框架。 大家都知道Tornado有异步非阻塞特性,但Sqlalchemy是同步操作,这会大大影响性能,会影响的用户体验。 为了能解决这一问题 阅读全文

posted @ 2019-01-24 00:02 ExplorerMan 阅读(458) 评论(0) 推荐(0) 编辑

关于ORM,以及Python中SQLAlchemy的sessionmaker,scoped_session
摘要:orm(object relational mapping):对象关系映射。 python面向对象,而数据库是关系型。 orm是将数据库关系映射为Python中的对象,不用直接写SQL。 缺点是性能略差。 通过sessionmaker,我们得到一个类,一个能产生session的工厂。 我们可以用这个 阅读全文

posted @ 2019-01-23 23:38 ExplorerMan 阅读(895) 评论(0) 推荐(0) 编辑

sqlalchemy在pythonweb中开发的使用(基于tornado的基础上)
摘要:一、关于SQLAlchemy的安装pip install SQLAlchemy安装如果上面的方式安装不成功的情况可以使用下面的方法 百度下载window或者linux下面对应的sqlalchemy的版本下载地址解压下载的压缩包进去该目录下使用python setup.py install测试安装是否 阅读全文

posted @ 2019-01-23 23:27 ExplorerMan 阅读(275) 评论(0) 推荐(0) 编辑

不得不注意tornado多进程部署的副作用
摘要:tornado多进程启动时,采用的是fork的方式。 一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。 子进程是父进程的副本,它将获得父进 阅读全文

posted @ 2019-01-23 17:07 ExplorerMan 阅读(626) 评论(0) 推荐(0) 编辑

tornado httpserver
摘要:在这一修改版本中,我们引入了tornado.httpserver模块,顾名思义,它就是tornado的HTTP服务器实现。 我们创建了一个HTTP服务器实例http_server,因为服务器要服务于我们刚刚建立的web应用,将接收到的客户端请求通过web应用中的路由映射表引导到对应的handler中 阅读全文

posted @ 2019-01-23 17:05 ExplorerMan 阅读(899) 评论(0) 推荐(0) 编辑

tornado web高级开发项目
摘要:本博文将一步步带领你实现抽屉官网的各种功能:包括登陆、注册、发送邮箱验证码、登陆验证码、页面登陆验证、发布文章、上传图片、form验证、点赞、评论、文章分页处理以及基于tornado的后端和ajax的前端数据处理。 转载请注明出处http://www.cnblogs.com/wanghzh/p/58 阅读全文

posted @ 2019-01-23 14:32 ExplorerMan 阅读(484) 评论(0) 推荐(0) 编辑

tornado日志管理
摘要:默认数据格式 默认情况下,采用tornado的web框架运行起来之后,任何访问都会直接在控制台输出日志信息,格式如下: [I 160807 09:27:17 web:1971] 200 GET / (::1) 7.00ms [I 160807 09:27:23 web:1971] 200 GET / 阅读全文

posted @ 2019-01-23 14:28 ExplorerMan 阅读(847) 评论(0) 推荐(0) 编辑

tornado options
摘要:tornado.options.define() 用来定义options选项变量的方法,定义的变量可以在全局的tornado.options.options中获取使用,传入参数: name 选项变量名,须保证全局唯一性,否则会报“Option 'xxx' already defined in ... 阅读全文

posted @ 2019-01-23 14:26 ExplorerMan 阅读(162) 评论(0) 推荐(0) 编辑

Tornado服务端基本的配置文件(Python)
摘要:web_set = { # 一般设置 'debug': True, 'port': 8836, 'autoreload': True, 'ui_modules': {}, # 设置默认的处理函数类,如:404页面等 'default_handler_class': None, 'serve_trac 阅读全文

posted @ 2019-01-23 14:21 ExplorerMan 阅读(238) 评论(0) 推荐(0) 编辑

谨慎安装Python3.7.0,SSL低版本导致Pip无法使用
摘要:最新新配置了一台服务器。安装 的时候直接使用了最新的Python 3.7最新版本。 安装成功,编译成功。但是用pip 安装包的时候提示:pip is configured with locations that require TLS/SSL, however the ssl module in P 阅读全文

posted @ 2019-01-21 21:26 ExplorerMan 阅读(1472) 评论(0) 推荐(0) 编辑

C10K问题
摘要:C10K问题由来 随着互联网的普及,应用的用户群体几何倍增长,此时服务器性能问题就出现。最初的服务器是基于进程/线程模型。新到来一个TCP连接,就需要分配一个进程。假如有C10K,就需要创建1W个进程,可想而知单机是无法承受的。那么如何突破单机性能是高性能网络编程必须要面对的问题,进而这些局限和问题 阅读全文

posted @ 2019-01-18 12:09 ExplorerMan 阅读(195) 评论(0) 推荐(0) 编辑

python操作rabbitmq操作数据(不错)
摘要:##一、RabbitMQ 消息队列介绍 RabbitMQ也是消息队列,那RabbitMQ和之前python的Queue有什么区别么? 1 2 3 如果是两个完全独立的python程序,也是不能用上面两个queue进行交互的,或者和其他语言交互有哪些实现方式呢。【Disk、Socket、其他中间件】这 阅读全文

posted @ 2019-01-17 21:23 ExplorerMan 阅读(204) 评论(0) 推荐(0) 编辑

python操作RabbitMQ(不错)
摘要:一、rabbitmq RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通 阅读全文

posted @ 2019-01-17 21:22 ExplorerMan 阅读(490) 评论(0) 推荐(0) 编辑

python RabbitMQ队列使用
摘要:python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下的线程间或者父进程与子进程之间进行队列通讯,并不能进行程序与程序之间的信息交换,这时候我们就需要一个 阅读全文

posted @ 2019-01-17 21:17 ExplorerMan 阅读(374) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(六)
摘要:远程过程调用(RPC) 在第二节里我们学会了如何使用工作队列在多个工人中分布时间消耗性任务。 但如果我们想要运行存在于远程计算机上的方法并等待返回结果该如何去做呢?这就不太一样了,这种模式就是常说的远程过程调用(RPC)。 在本节我们会 在本节我们会使用RabbitMQ创建一个RPC系统:一个客户端 阅读全文

posted @ 2019-01-17 19:52 ExplorerMan 阅读(224) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(五)
摘要:Topics 在前面教程中我们改进了日志系统,相比较于使用fanout类型交易所只能傻瓜一样地广播,我们用direct获得了选择性接收日志的能力。 虽然使用direct类型交易所改进了我们的系统,但它仍然有所限制——它不能做基于多重条件(multiple criteria)的路由。 在日志系统中我们 阅读全文

posted @ 2019-01-17 19:22 ExplorerMan 阅读(197) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(四)
摘要:路由 在上一节我们构建了一个简单的日志系统。我们能够广播消息给很多接收者。 在本节我们将给它添加一些特性——我们让它只订阅所有消息的子集。例如,我们只把严重错误(critical error)导入到日志文件(存入磁盘空间),但仍然可以打印所有日志消息到控制台。 绑定 前面的例子中我们已经创建了绑定, 阅读全文

posted @ 2019-01-17 19:06 ExplorerMan 阅读(253) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(三)
摘要:发布/订阅 前面的教程中我们已经创建了一个工作队列。在一个工作队列背后的假设是每个任务恰好会传递给一个工人。在这一部分里我们会做一些完全不同的东西——我们会发送消息给多个消费者。这就是所谓的“发布/订阅”模式。 为了解释这种模式,我们将会构建一个简单的日志系统。它包含两个程序——第一个产生日志消息, 阅读全文

posted @ 2019-01-17 18:15 ExplorerMan 阅读(351) 评论(0) 推荐(0) 编辑

异步通信rabbitmq——消息重试
摘要:目标: 利用RabbitMQ实现消息重试和失败处理,实现可靠的消费消费。在消息消费异常时,自动延时将消息重试,当重试超过一定次数后,则列为异常消息,等待后续特殊处理。 准备: TTL:Time-To-Live,通过给消息、队列设置过期时间(单位:毫秒),来控制消息、队列的生命周期。在达到时间后,消息 阅读全文

posted @ 2019-01-17 17:15 ExplorerMan 阅读(550) 评论(0) 推荐(0) 编辑

重启rabbitmq服务
摘要:重启rabbitmq服务通过两个命令来实现: rabbitmqctl stop :停止rabbitmq rabbitmq-server restart : 重启rabbitmq 因为rabbitmqctl是没有restart命令的,所以重启rabbitmq服务需要这么两步。 另外,附上一些有用的官方 阅读全文

posted @ 2019-01-17 15:45 ExplorerMan 阅读(2079) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(二)
摘要:工作队列 在第一节我们写了程序来向命名队列发送和接收消息 。在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tasks)。 工作队列(又叫做: Task Queues)背后的主体思想是 避免立刻去执行耗时任务并且等 阅读全文

posted @ 2019-01-17 12:18 ExplorerMan 阅读(413) 评论(0) 推荐(0) 编辑

基于Python语言使用RabbitMQ消息队列(一)
摘要:介绍 RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, RabbitMQ 就是一个邮筒, 同时也是邮局和邮递员 . 和邮局的主要不同点在于RabbitMQ 阅读全文

posted @ 2019-01-17 11:59 ExplorerMan 阅读(450) 评论(0) 推荐(0) 编辑

MySQL事务隔离级别详解
摘要:前两天面试,问到了四种隔离级别,当时觉得大多数数据库都为read committed,结果没想到mysql是个例外。在此做一下隔离级别和各种数据库锁的使用。 首先说一下ACID四大特性: 四大特性 · 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联 阅读全文

posted @ 2019-01-15 21:41 ExplorerMan 阅读(169) 评论(0) 推荐(0) 编辑

mysql的事务隔离级别
摘要:事务的四大特性(ACID):1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。2.一致性(consistency):数据库总数从一个一致性的状态转换 阅读全文

posted @ 2019-01-15 21:24 ExplorerMan 阅读(103) 评论(0) 推荐(0) 编辑

分布式锁的几种实现方式
摘要:目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两 阅读全文

posted @ 2019-01-15 18:39 ExplorerMan 阅读(147) 评论(0) 推荐(0) 编辑

mysql事务,select for update,及数据的一致性处理
摘要:在MySQL的InnoDB中,预设的Tansaction isolation level 为REPEATABLE READ(可重读) 在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE 这两种方式在事务 阅读全文

posted @ 2019-01-15 18:00 ExplorerMan 阅读(198) 评论(0) 推荐(0) 编辑

MySQL的SELECT ...for update
摘要:最近的项目中,因为涉及到Mysql数据中乐观锁和悲观锁的使用,所以结合项目和网上的知识点对乐观锁和悲观锁的知识进行总结。 悲观锁介绍 悲观锁是对数据被的修改持悲观态度(认为数据在被修改的时候一定会存在并发问题),因此在整个数据处理过程中将数据锁定。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据 阅读全文

posted @ 2019-01-15 17:27 ExplorerMan 阅读(466) 评论(0) 推荐(0) 编辑

秒杀场景,异步扣减库存解决超卖的问题
摘要:1、限流2、将库存放到redis中、接收用户请求的时候。从redis取库存,判断库存量是否大于本次订单购买量库存大于本次购买量:扣减redis中的库存、并且将订单信息推送到MQ;库存小于本次购买量:直接返回、数量不足。3、MQ消费者获取消息:1):更新数据库库存(乐观锁)2):生成订单信息,扣除用户 阅读全文

posted @ 2019-01-15 16:53 ExplorerMan 阅读(1243) 评论(0) 推荐(0) 编辑

秒杀核心设计(减库存部分)-防超卖与高并发
摘要:商品详情页面的静态化,varnish加速,秒杀商品库独立部署服务器这种就略过不讲了。只讨论库存部分的优化 mysql配置层面的优化可以参考我的这篇文章 《关于mysql innodb引擎性能优化的一点心得》 重点设计在数据库层面。 2张表: 第一张:判重表(buy_record),该用户有没秒杀过该 阅读全文

posted @ 2019-01-15 16:51 ExplorerMan 阅读(2178) 评论(0) 推荐(0) 编辑

简单的聊聊,分布式里商品的超卖和电商秒杀
摘要:商品减库存的线程安全问题(商品的超卖问题)。 提到线程安全我们就想到了同步问题,但是由于这里是分布式的微服务,可能还要搭集群,以前的一台服务器下的代码可以加同步锁现在服务器都不一样,那么这种方案肯定行不通。 其实也可以考虑分布式锁去解决这个问题,但是由于是电商项目 执行效率的问题肯定是首先要考虑的。 阅读全文

posted @ 2019-01-15 16:47 ExplorerMan 阅读(278) 评论(0) 推荐(0) 编辑

rabbitmq集群部署及配置
摘要:消息中间件rabbitmq,一般以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息异步。本篇将以rabbitmq+HA方式进行部署。 一、原理介绍 rabbitmq是依据erlang的分布式特性(RabbitMQ底层是通过Erlang架构来实现的,所以rabbitmqctl会启动Erl 阅读全文

posted @ 2019-01-14 20:31 ExplorerMan 阅读(577) 评论(0) 推荐(0) 编辑

RabbitMQ用户角色及权限控制(不错)
摘要:########################用户角色####################### RabbitMQ的用户角色分类:none、management、policymaker、monitoring、administrator RabbitMQ各类角色描述:none不能访问 manag 阅读全文

posted @ 2019-01-14 20:19 ExplorerMan 阅读(666) 评论(0) 推荐(0) 编辑

RabbitMQ 权限分离&HA操作文档
摘要:概要 默认情况下,使用帐号guest帐号登陆MQ,所有用户的queue信息,全部创建在根目录/的virtual host下,而这样,就会导致,任一用户登录后,都能看到其他用户的queue信息。 针对以上情况,就需要各个用户的权限进行分离。 一、配置步骤(假设想要分离的用户为colander,即,使用 阅读全文

posted @ 2019-01-14 19:06 ExplorerMan 阅读(388) 评论(0) 推荐(0) 编辑

rabbitmq的vhost与用户管理
摘要:当我们在创建用户时,会指定用户能访问一个虚拟机,并且该用户只能访问该虚拟机下的队列和交换机,如果没有指定,默认的是”/”;一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要,这样做既可以满足权限配置的要求,也可以避免不同业务之间队列、交换机的命名冲突问题,因为不同vhost 阅读全文

posted @ 2019-01-14 18:58 ExplorerMan 阅读(225) 评论(0) 推荐(0) 编辑

Rabbitmq用户权限配置
摘要:由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本引入的)。 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密 阅读全文

posted @ 2019-01-14 18:49 ExplorerMan 阅读(466) 评论(0) 推荐(0) 编辑

RabbitMQ教程总结
摘要:【译】RabbitMQ教程一 主要通过Hello Word对RabbitMQ有初步认识 【译】RabbitMQ教程二 工作队列,即一个生产者对多个消费者 循环分发、消息确认、消息持久、公平分发 【译】RabbitMQ教程三 如何同一个消息同时发给多个消费者 开始引入RabbitMQ消息模型中的重要概 阅读全文

posted @ 2019-01-13 20:39 ExplorerMan 阅读(159) 评论(0) 推荐(0) 编辑

RabbitMQ原理与相关操作(三)消息持久化
摘要:现在聊一下RabbitMQ消息持久化: 问题及方案描述 1.当有多个消费者同时收取消息,且每个消费者在接收消息的同时,还要处理其它的事情,且会消耗很长的时间。在此过程中可能会出现一些意外,比如消息接收到一半的时候,一个消费者死掉了。 这种情况要使用消息接收确认机制,可以执行上次宕机的消费者没有完成的 阅读全文

posted @ 2019-01-13 20:38 ExplorerMan 阅读(480) 评论(0) 推荐(0) 编辑

RabbitMQ原理与相关操作(一)
摘要:小编是菜鸟一枚,最近想试试MQ相关的技术,所以自己看了下RabbitMQ官网,试着写下自己的理解与操作的过程。 刚开始的第一篇,原理只介绍 生产者、消费者、队列,至于其他的内容,会在后续中陆续补齐。 引入MQ话题 什么时候会用到MQ 可能很多人有疑惑:MQ到底是什么?哪些场景下要使用MQ?前段时间安 阅读全文

posted @ 2019-01-13 20:37 ExplorerMan 阅读(233) 评论(0) 推荐(0) 编辑

RabbitMQ原理与相关操作(二)
摘要:接着 上篇随笔 增加几个概念: RabbitMQ是一个在AMQP(高级消息队列协议)标准基础上完整的,可服用的企业消息系统。 AMQP模型的功能组件图(上图摘自 Sophia_tj 的 第2章 AMQP模型) AMQP的四个总要概念: 1、虚拟主机(virtual host)或(vhost) 2、交 阅读全文

posted @ 2019-01-13 20:37 ExplorerMan 阅读(151) 评论(0) 推荐(0) 编辑

windows下 安装 rabbitMQ 及操作常用命令
摘要:rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。 1.安装Erlang 所以在安装rabbitMQ 阅读全文

posted @ 2019-01-13 20:32 ExplorerMan 阅读(137) 评论(0) 推荐(0) 编辑

常用消息队列对比
摘要:作为中间件,消息队列是分布式应用间交换信息的重要组件。消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息。所以消息队列可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、高 阅读全文

posted @ 2019-01-13 20:08 ExplorerMan 阅读(480) 评论(0) 推荐(0) 编辑

消息队列mq总结(重点看,比较了主流消息队列框架)
摘要:转自:http://blog.csdn.net/konglongaa/article/details/52208273 http://blog.csdn.net/oMaverick1/article/details/51331004 https://yq.aliyun.com/articles/25 阅读全文

posted @ 2019-01-12 21:27 ExplorerMan 阅读(3672) 评论(0) 推荐(0) 编辑

今日头条抖音火山后端研发面试经历(转)
该文被密码保护。

posted @ 2019-01-10 12:26 ExplorerMan 阅读(1) 评论(0) 推荐(0) 编辑

redis设置为null问题
摘要:查看源码后发现,redis没有删除方法,本想给他设置为null,但是redis报错,所有仔细想了一下,发现redis提供了一个时间限制方法,所有可以让redis的时间限制为1s,就想当于删除redis中的这个K。 阅读全文

posted @ 2019-01-09 17:18 ExplorerMan 阅读(2871) 评论(0) 推荐(0) 编辑

Redis实现单点登录
摘要:单点登录功能分析 请求的url:/user/login 请求的方法:POST 参数:username、password,表单提交的数据。可以使用方法的形参接收。 返回值:json数据,包含一个token。 业务逻辑: 登录的业务流程: 登录的处理流程:1、登录页面提交用户名密码。 2、登录成功后生成 阅读全文

posted @ 2019-01-09 17:16 ExplorerMan 阅读(5001) 评论(0) 推荐(0) 编辑

【redis】redis的 key的命名规则
摘要:key的命名规则 定义为 使用:进行分割,这样存入redis的是有层次结构的,如下 阅读全文

posted @ 2019-01-09 17:13 ExplorerMan 阅读(1468) 评论(0) 推荐(0) 编辑

Redis的那些最常见面试问题
摘要:随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估计是我当时最后提问题的时候减分了吧,其他的也有一些offer,不是不想去,就是了无音讯了,眼看年关将 阅读全文

posted @ 2019-01-08 21:38 ExplorerMan 阅读(167) 评论(0) 推荐(0) 编辑

如何通过努力出书,如何写有畅销资质的书,本文汇集了多位计算机图书作者的经验
摘要:最近,我在博客园里看到不少网友晒自己写的书,都很精彩,尤其的,我朋友肖同学也写了本《HTTP抓包实战》,https://item.jd.com/12375396.html。写书有什么好处?第一能总结,第二能在此基础上不断提升,第三在找工作时帮助很大。我知道在博客园里,有更多的朋友想出书,在本文里,我 阅读全文

posted @ 2019-01-08 18:38 ExplorerMan 阅读(432) 评论(0) 推荐(0) 编辑

python之redis
摘要:前言:本来想写redis与rabbitMQ的,但写完redis后感觉有点多,rabbitMQ还是留在下篇博客吧~~ 关于redis与rabbitMQ的下载与安装,可参考redis&rabbitMQ安装 一、redis基本操作-1 运行结果: 1 b'age' b'22' 2 b'id' b'211A 阅读全文

posted @ 2019-01-08 18:02 ExplorerMan 阅读(222) 评论(0) 推荐(0) 编辑

redis 双写一致性问题
摘要:首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于 阅读全文

posted @ 2019-01-07 21:21 ExplorerMan 阅读(655) 评论(0) 推荐(0) 编辑

MySQL主从复制与读写分离
摘要:MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方 阅读全文

posted @ 2019-01-07 21:19 ExplorerMan 阅读(313) 评论(0) 推荐(0) 编辑

高并发下Redis如何保持数据一致性(避免读后写)
摘要:通常意义上我们说读后写是指针对同一个数据的先读后写,且写入的值依赖于读取的值。 关于这个定义要拆成两部分来看,一:同一个数据;二:写依赖于读。(记住这个拆分,后续会用到,记为定义一、定义二)只有当这两部分都成立时,读后写的问题才会出现。 在项目中,当面对较多的并发时,使用redis进行读后写操作,是 阅读全文

posted @ 2019-01-07 21:13 ExplorerMan 阅读(14764) 评论(0) 推荐(0) 编辑

redis的no-appendfsync-on-rewrite参数
摘要:redis提供了两种持久化机制,rdb和aof。 关于aof的原理,类似于预写日志,不再解释。其中几个选项如下: appendfsync always:总是写入aof文件,并完成磁盘同步appendfsync everysec:每一秒写入aof文件,并完成磁盘同步 appendfsync no:写入 阅读全文

posted @ 2019-01-07 15:28 ExplorerMan 阅读(2826) 评论(0) 推荐(1) 编辑

Redis基础、高级特性与性能调优
摘要:本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。 本文适合使用Redis的普通开发人员,以及对Redis进行选型、架构设计和性能调优的架构设计人员。 阅读全文

posted @ 2019-01-07 15:15 ExplorerMan 阅读(696) 评论(0) 推荐(0) 编辑

python与redis交互
摘要:相关内容: redis模块的使用 安装模块 导入模块 连接方式 连接池 操作 设置值 获取值 管道 事务 订阅\发布 安装模块 导入模块 连接方式 连接池 操作 设置值 获取值 设置值 获取值 首发时间:2018-03-14 15:02 python可以使用redis模块来跟redis交互 redi 阅读全文

posted @ 2019-01-07 11:40 ExplorerMan 阅读(232) 评论(0) 推荐(0) 编辑

python连接redis sentinel集群
摘要:安装 python redis 客户端 pip install redis 阅读全文

posted @ 2019-01-07 11:40 ExplorerMan 阅读(527) 评论(0) 推荐(0) 编辑

RabbitMQ的持久化机制
摘要:一.问题的引出 RabbitMQ的一大特色是消息的可靠性,那么它是如何保证消息可靠性的呢?——消息持久化。为了保证RabbitMQ在退出,服务重启或者crash等异常情况下,也不会丢失消息,我们可以将Queue,Exchange,Message都设置为可持久化的(durable),这样可以保证绝大部 阅读全文

posted @ 2019-01-06 20:27 ExplorerMan 阅读(6352) 评论(0) 推荐(1) 编辑

PEP8编程规范
该文被密码保护。

posted @ 2019-01-04 16:39 ExplorerMan 阅读(0) 评论(0) 推荐(0) 编辑

三分钟学会.NET微服务之Polly
摘要:熔断降级是一个非常重要的概念,我们先说一下什么是熔断降级,咱们都知道服务发现,一个有问题的服务器没来得急注销过一会就崩溃掉了,那么我们的请求就有可能访问一个已经崩溃的服务器,那么就会请求失败,因为已经game over了。那么这个问题怎么解决呢,你一定要承认,这个问题是无法避免的。没有什么方法说,我 阅读全文

posted @ 2019-01-04 14:55 ExplorerMan 阅读(539) 评论(0) 推荐(0) 编辑

redis设置密码和redis主从复制
摘要:redis设置密码和redis主从复制 一、redis设置密码 1、Redis实用特性 安全性 主从复制(侦听器)事务处理 持久化机制 发布订阅消息 2、安全性:设置客户端连接后进行任何其他指定前需要使用的密码 打开配置文件redis.conf 在requirepass foobared下一行加 r 阅读全文

posted @ 2019-01-03 16:33 ExplorerMan 阅读(2155) 评论(0) 推荐(1) 编辑

程序员工作之外,如何再赚一份工资?
摘要:很多程序员兄弟们工资不高,但时间还是比较充足的,剩下的时间想多搞点外快,毕竟要养家糊口。 我来讲讲怎么做可以一个月轻松多赚2万多元的外快。(纯干货分享!) 一、接项目 是程序员都想过接私活,但真正去做了的寥寥无几。 可能的原因: 1、工作忙天天加班没时间 2、有时间但不知道从哪找项目,针对第一点我就 阅读全文

posted @ 2019-01-03 16:17 ExplorerMan 阅读(330) 评论(0) 推荐(0) 编辑

吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
摘要:开发的原因,需要对吞吐量(TPS)、QPS、并发数、响应时间(RT)几个概念做下了解,查自百度百科,记录如下:1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许 阅读全文

posted @ 2019-01-02 18:22 ExplorerMan 阅读(165) 评论(0) 推荐(0) 编辑

TPS和QPS的区别和理解
摘要:QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务 阅读全文

posted @ 2019-01-02 18:21 ExplorerMan 阅读(1310) 评论(0) 推荐(0) 编辑

制定一套适合自己团队的GITflow标准化工作流
摘要:Git作为分布式代码管理的“当红炸子鸡”,被越来越多团队使用。当团队多个人员在同一个Git仓库上进行代码开发,没有一套标准化流程,将会引起代码管理的混乱,上线流程的迷茫,影响工作效率。制定一套适合自己团队的Gitflow标准化工作流势在必行! 写在前面的话 Git,作为分布式代码管理软件中的“当红炸 阅读全文

posted @ 2019-01-02 14:50 ExplorerMan 阅读(483) 评论(0) 推荐(0) 编辑

前端git开发、测试、发布流程
该文被密码保护。

posted @ 2019-01-02 14:48 ExplorerMan 阅读(0) 评论(0) 推荐(0) 编辑

导航

< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示