- 博客(186)
- 收藏
- 关注
原创 Django 深入浅出认证系统
cookie session解决问题:比较:Session 存储引擎存储session的容器,封装一系列方便操作session_key或session的方法,例如get、save、create等,同时实现__getitem__、setitem、delitem、__contains__方法,实现字典操作session。Django 有哪些存储容器?根据配置文件选用:SESSION_ENGINEsession的操作:1. 如果操作Session写:request.session["use
2021-12-07 19:13:04 475
原创 Django 密码与安全
Django 密码与安全密码是一种用来混淆的技术(把用公开的、标准的信息编码表示的信息通过一种变换手段,将其变为除通信双方以外其他人所不能读懂的信息编码)。就是将正常的(可识别的)信息转变为无法识别的信息。但这种无法识别的信息部分是破解(密码泄漏)。密码的设计需遵守 柯克霍夫原则:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或秘钥)未泄漏,它也应是安全的。Django 如何存储密码?User 对象的 password 属性是如下这种格式:<algorithm>
2021-06-21 19:20:26 1472
原创 Docker 搭建Pycharm ssh远程虚拟环境
换了新版MacBook Pro一堆环境重新配置,python3.9.1支持m1,如果安装 Python3.9.1 项目代码很多不兼容的情况,所以可以使用Docker安装需要的项目环境。在Docker社区中,对于是否需要为Docker容器添加SSH服务一直存有争议。对于是否需要为Docker容器添加SSH服务,应取决于容器的具体应用场景:即作为应用容器还是作为系统容器或数据容器。应用容器行为围绕应用生命周期,较少简单,不需要人工的额外干预;而系统容器或数据容器则需要支持管理员的登录操作,这个时候容器对S
2022-01-11 13:53:35 1252
原创 全局锁、表锁、行锁
全局锁全局锁的典型使用场景是,做全库逻辑备份历史做法:flush table with read lock;确保不会有其他线程对数据库做更新,然后对整个库做备份。mysql> flush table with read lock;Query OK, 0 rows affected (0.10 sec)mysql> select * from t;+----+------+------+| id | c | d |+----+------+------+| 0 |
2022-01-04 23:20:18 1282 2
原创 普通、唯一索引的选择与实践
唯一索引,普通索引选择查询过程(微乎其微影响)假设维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重复的身份证号:select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz';可以给id_card上面加索引,身份证号字段比较大,不建议你把身份证号当做主键。(非主键索引会存储主键索引的值,因此推荐选用短字段当主键索引)对于普通索引来说,会多一次判断,需要查找下一个记录判断是否也满足匹配条件,不满足则终止扫
2022-01-02 15:41:12 636
原创 深入浅出MySql索引
索引的作用提高数据查询效率索引的常见模型可以用于提高读写效率的数据结构很多,这里三种常见、也比较简单的数据结构,它们分别是哈希表、有序数组和搜索树哈希表键 - 值(key - value) 的形式,哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。哈希冲突的处理办法:链表哈希表适用场景: 只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎。有序数组按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(lo
2022-01-02 14:50:35 1306
原创 Mysql日志系统
redo logMySQL的的更新操作不会每次都写入磁盘,如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高。类似使用酒店掌柜粉板的思路来提升效率。(先写粉板,不忙时候再写账本)WAL是什么?Write-Ahead Logging,它的关键点就是先写日志,再写磁盘,也就是先写粉板,等不忙的时候再写账本。InnoDB引擎就会先把记录写到redo log(粉板)里面,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,
2021-12-25 18:44:07 714
原创 SQL查询执行流程
mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在MySQL内部的执行过程。MySQL 基本架构MySQL可以分为Server层和存储引擎层两部分Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等存储引擎负责数据的存储和提取。其架构模式是插件式
2021-12-25 17:41:59 503
原创 Docker swarm 集群
概述Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。Swarm 和 Kubernetes 比较类似,但是更加轻,具有的功能也较 kubernetes 更少一些。Swarm 默认内置有加密的分布式集群存储(encrypted distributed cluster store)、加密网络(Encrypted Network)、公用TLS(Mutual TLS)
2021-12-18 18:41:09 5486
原创 hbase 物理结构
store: hdfs上面的存储,物理存储结构更改了t3时间戳的数据,type是put,查询的时候取时间戳最大的版本的数据。删除是Delete。如果删除数据,hbase不会立马去删除,只是不会返回数据。 存储位置:/hbase-data/data/default/stu/ed30b20db52ac89d48e4caedc07e8998/info2/xxxxxxdefa...
2021-12-17 22:55:20 916
原创 hbase 数据模型
name spaceHBase命名空间 namespace 是与关系数据库系统中的数据库类似的表的逻辑分组。为即将出现的多租户相关功能奠定了基础:配额管理(Quota Management)(HBASE-8410)限制命名空间可占用的资源量(即区域,表)。命名空间安全管理(Namespace Security Administration)(HBASE-9206)- ...
2021-12-17 22:35:15 768
原创 grpc-python03-常用protobuf数据类型和pb文件
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!"""Client and server classes corresponding to protobuf-defined services."""import grpcimport hello_word_pb2 as h...
2021-12-17 21:34:02 1106
原创 grpc-python04 流传输
1.unary 单程2.stream:双向 客户端(流)<-> 服务器端 send(流)双方建立长链接,一方向另外一方推流的数据:单向 客户端(流)<-> 服务器端(非流)单向 客户端(非流)<-> 服务器端 send(流)服务器端向客户端推流数据proto:service SayHello { rpc ...
2021-12-17 21:09:46 473
原创 设计模式分类&概念
对==软件设计==中普遍存在(反复出现的各种问题),所提出的解决方案。每一个设计模式系统地命名、解释何评价了面向对象系统中一个重要的和重复出现的设计。四人帮:(Gang of Four, GoF)...《设计模式:可复用面向对象软件的基础》面向对象封装继承多态接口若干抽象方法的集合作用:限制实现接口的类必须是按照接口给定的调用方式实现这些方法;对高层模块...
2021-12-17 13:47:58 125
原创 设计模式-原型模式
当我们已经存在一个对象,这个对象有其属性和方法,若我们还想去获得另外一个同类型对象,此时有两种选择:重新去创建一个新的对象根据已有的对象复制一个副本,而在很多时候我们不需要完全去重新构建一个对象,只需要在原有对象存在的基础上(保留原对象),去修改其属性和方法得到一个新的对象。 import copyfrom collections import OrderedDi...
2021-12-17 12:59:18 115
原创 grpc-python06–headers与压缩与传输最大值
添加header信息service -> clientservice:context.set_trailing_metadata((("x-envoy-decorator-operation", "test"), ("name", "donghao"), ("age", "23")))client:resp, call = client.HelloDongha...
2021-12-17 12:57:32 330
原创 建造者模式
# -*- coding: utf-8 -*-"""Author : donghaoTime : 2021/11/2 10:53 上午"""from __future__ import absolute_importfrom abc import ABCMeta, abstractmethodclass Player: """ 产品...
2021-12-17 12:12:21 109
原创 hbase架构
Data:get, put, delete(某一行数据操作)Region:splitRegion(切分), compactRegion(合)Master: 元数据入口,可以理解为管理表结构。DDL 数据库模式定义语言DDL(Data Definition Language)ReginServer: DML 数据操纵语言(Data Manipulation Langua...
2021-12-17 12:11:05 935
原创 设计模式-外观模式
class CPU(object): def run(self): print('CPU run') def stop(self): print('CPU stop')class Disk(object): def run(self): print('Disk run') def stop...
2021-12-17 11:00:49 117
原创 hbase简介 & 数据结构
学习目标大纲:HBase 简介HBase是Apache的Hadoop项目的子项目,是Hadoop Database的简称。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase不同于一般的关系数据库(Nosql),它是一个适合于非结构化数据存储的数据库,HBase基于列的而...
2021-12-17 09:52:45 2340
原创 适配器模式
将一个类的接口转换成客户希望的另外一个接口,适配器使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。实现适配器的两种方式,类适配器使用多继承,对象适配器使用组合。组合就是一个类中放入另一类的对象。 先来看下组合:class A: passclass B: def __init__(): self.a = A()类适配器模式使用示例...
2021-12-17 08:44:13 122
原创 hbsae 安装
docker 安装, 可参考:https://www.jianshu.com/p/c971d5c21633一些端口信息:16010 hbase master webui8080: hbase master port16100: Multicast port to use for the status publication by multicast.Hbase ...
2021-12-17 08:28:59 280
原创 工厂方法模式
from abc import ABCMeta, abstractmethodclass Pay(metaclass=ABCMeta): """ 抽象产品角色 """ @abstractmethod def pay(self, money): passclass Weweixinpay(Pay): ""...
2021-12-17 07:17:10 103
原创 设计模式-桥模式
如果有多种形状与颜色,可能原始会这么写(不容易扩展):使用桥模式扩展:class Shape(with_metaclass(ABCMeta, object)): # 抽象 def __init__(self, color): # 组合的形式松耦合 self.color = color @abstractmetho...
2021-12-17 07:03:56 86
原创 设计模式-单例模式
from __future__ import absolute_importclass Singleton(object): def __new__(cls, *args, **kwargs): if not hasattr(cls, '_instance'): cls._instance = super(Singleton...
2021-12-17 05:05:32 152
原创 设计模式-策略模式
# -*- coding: utf-8 -*-"""Author : donghaoTime : 2021/11/3 2:57 下午"""from __future__ import absolute_importfrom abc import ABCMeta, abstractmethodclass Strategy(metaclass=ABCMe...
2021-12-17 04:12:05 939
原创 设计模式-代理模式
class Subject(metaclass=ABCMeta): # 抽象实体,使对外有一致的方法。高层代码可以统一使用 @abstractmethod def get_content(self): pass @abstractmethod def set_content(self, content): ...
2021-12-17 04:04:36 70
原创 设计模式-组合模式
class Graphic(metaclass=ABCMeta): # 抽象组件 @abstractmethod def draw(self): passclass Point(Graphic): # 叶子组件 def __init__(self, x, y): self.x = x ...
2021-12-17 03:05:16 100
原创 grpc-python07—拦截器 & 多进程
书写拦截器调用链路、身份验证init code、detail错误函数 grpc_code、abortintercept_service(self, continuation, header_call_details)def _abort(code, details): # unary, streamdef terminate(ignored_request, c...
2021-12-17 03:00:50 387
原创 简单工厂模式
简单工厂模式内容:不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的示例。角色:工厂角色(Creator)抽象产品角色(Product)具体产品角色(Concrete Product)优点:隐藏了对象创建实现细节客户端不需要更改代码缺点:违反了单一职责,将创建逻辑几种集中到一个工厂类里当添加产品时,需要修改工厂类代码,违反...
2021-12-17 02:36:53 71
原创 grpc-python01–引言
pip install grpcio grpcio_tools protobuf1.定义protobuf文件// 语法syntax = "proto3";// 包名package test;// service定义service SayHello { // 定义方法、请求、响应message rpc HelloDonghao (HelloDonghao...
2021-12-17 02:31:04 1118
原创 hbase shell操作
command group:重要:(1)、通用命令: status: 提供HBase的状态,例如,服务器的数量。 version: 提供正在使用HBase版本。 table_help: 表引用命令提供帮助。 whoami: 提供有关用户的信息。(2)、数据定义语言 : 这些是关于HBase在表中操作的命令。 c...
2021-12-17 01:46:39 861
原创 抽象工厂模式
案例:from abc import ABCMeta, abstractmethod# ------抽象的产品------class PhoneShell(metaclass=ABCMeta): @abstractmethod def show_shell(self): passclass PhoneCPU(metaclass=...
2021-12-17 01:15:24 70
原创 责任链模式
from abc import ABCMeta, abstractmethodclass Handler(metaclass=ABCMeta): # 抽象处理者 @abstractmethod def handle_leave(self, day): passclass GeneralManager(Handler): ...
2021-12-17 00:58:52 83
原创 设计模式:命令模式 & 项目案例
命令模式是行为模式的一种“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将**“行为请求者”与“行为实现者”**解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)创建型模式:聚焦如何创建对象结构型模式:聚焦在类之间如何结合行为型模式:聚焦在方法上如何结合完成功能命令模式应该有一下几个角色:Command:定义命令的接口,声
2021-12-16 17:58:14 626
原创 Docker 网络连通
连接网络到容器☁ ~ docker network connect --help Usage: docker network connect [OPTIONS] NETWORK CONTAINERConnect a container to a networkOptions: --alias strings Add net...
2021-12-15 23:32:26 1549
原创 地理空间(geospatial)
将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。这些数据将会存储到sorted set这样的目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作。使用什么样的地球模型(Earth model)? 这只是假设地球是一个球体,因为使用的距离公式是Haversine公式。这个公式仅适用于地球,而不是一个完美的球体。当在...
2021-12-15 22:42:44 622
原创 Run流程 & 原理
RUN流程图底层原理Docker怎么工作Docker 是一个client - server结构的系统,Docker的守护进程运行在主机上,通过socket从客户端访问。DockerServer接收到DockerClient的指令,就会执行相关指令。为什么比vm快更少的抽象层利用宿主机内核,vm需要guestoshypervisor 大型机提供了一个...
2021-12-15 22:41:58 173
原创 hyperloglogs基数统计
不重复的元素个数,可以接受误差redis 2.8.9 版本更新了hyperloglog 数据结构,基数统计的算法优点:占用的内存是固定的, 2^64不同元素,只需要12kb内存,如果从内存的角度考虑可以使用Hyperloglog。应用:网页uv统计 传统的方式可以使用set保存用户id,但是会占用较大内存空间,而且比较麻烦;但是hyperloglog有0.81%的错误率,...
2021-12-15 21:40:56 180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人