11 2018 档案

摘要:第一篇 Python与设计模式:前言 第二篇(23种设计模式) 创建类设计模式(5种) 单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式 结构类设计模式(7种) 代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式 行为类设计模式(11种) 策略模式、责任链模 阅读全文
posted @ 2018-11-29 16:08 刘清政 阅读(3188) 评论(2) 推荐(4) 编辑
摘要:一 什么是发布订阅 发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下 阅读全文
posted @ 2018-11-23 20:10 刘清政 阅读(991) 评论(0) 推荐(2) 编辑
摘要:将redis发布订阅模式用做消息队列和rabbitmq的区别: 可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中;rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条消息将一直 阅读全文
posted @ 2018-11-23 18:43 刘清政 阅读(2137) 评论(1) 推荐(1) 编辑
摘要:一 为什么使用 Redis 在项目中使用 Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。 性能: 如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这 阅读全文
posted @ 2018-11-22 15:23 刘清政 阅读(755) 评论(0) 推荐(0) 编辑
摘要:1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所 阅读全文
posted @ 2018-11-21 19:33 刘清政 阅读(1648) 评论(0) 推荐(1) 编辑
摘要:一基于redis 利用redis的乐观锁,实现秒杀系统的数据同步(基于watch实现), 用户一: 用户二: 注:windows下如果数据被修改了,不会抛异常,只是返回结果的列表为空,mac和linux会直接抛异常 秒杀系统核心逻辑测试,创建100个线程并发秒杀 import redis from 阅读全文
posted @ 2018-11-21 19:30 刘清政 阅读(855) 评论(0) 推荐(1) 编辑
摘要:一乐观锁 总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。 version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数 阅读全文
posted @ 2018-11-21 16:53 刘清政 阅读(857) 评论(0) 推荐(0) 编辑
摘要:在django1.4以后,存在两个概念 naive time 与 active time。 简单点讲,naive time就是不带时区的时间,Active time就是带时区的时间。 举例来说,使用datetime.datetime.utcnow()、datetime.datetime.now()输 阅读全文
posted @ 2018-11-13 18:59 刘清政 阅读(2957) 评论(0) 推荐(6) 编辑

点击右上角即可分享
微信分享提示