- 博客(34)
- 收藏
- 关注
原创 Redis哨兵、复制、集群的设计原理,以及区别
谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能。复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器。Redis正是利用这两个功能来保证Redis的高可用。哨兵(sentinal)哨兵是Redis集群架...
2020-03-23 09:42:24 403
原创 redis布隆过滤器
布隆过滤器布隆过滤器是什么?(判断某个key一定不存在)本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的使用:布隆过滤器在NoSQL数据库领域中应用的非常广...
2020-03-22 23:12:05 203
原创 redis五种数据结构
说明:对于Redis来说,它可以存储五种基本数据类型,redis中所有数据结构都以唯一的key字符串作为名称,然后通过这个唯一的key来获取对应的value不同的数据类型数据结构差异就在于value的结构不一样而现在的版本中的五种类型是:String(字符串)、Hash(字典)、List(列表)、Set(集合)、SortedSet(zSet:有序集合)一、string(字符串)...
2020-03-22 22:57:31 536
原创 redis的常用命令
redis常用命令import redisr = redis.Redis(host='1.1.1.3', port=6379)#1、打印这个Redis缓存所有key以列表形式返回:[b'name222', b'foo']print( r.keys() ) # keys *#2、清空redisr.flushall()#3、设置存在时间: ...
2020-03-22 22:55:46 145
原创 mysql主从同步
1、mysql主从同步(复制)概念将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后...
2020-03-19 21:58:17 102
原创 mysql索引
1. 索引类型普通索引:最基本的索引,它没有任何限制,用于加速查询。唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。全文索引:主要用来查找文本中的关键字,而不是直接与索引中的值相比较。联合(组合)索引:指多个字段上创建的索引,只有在查询条件中使用了创建...
2020-03-19 21:57:42 97
原创 网络osi七层tcp三握四挥IP地址DNS协议ARP协议DHCP协议
2.2.1 OSI七层模型理论1.OSI七层图解2.OSI七层协议3.OSI各层详解**物理层:**在连接各种计算机的传输媒体上传输数据比特流 (将我们发送的数据转换成二进制比特流传输) **数据链路层:**将比特流组合成字节进而组合成帧,使用用MAC地址寻址 (我们所说的二层交换机就工作在这一层) **网络层:**使用ip地址寻址,实现不同网络之间的路径选择。 (...
2020-03-17 21:53:33 485
原创 linux网络相关命令
1.基础命令ifconfig # 查看网卡信息ip addr # 查看网卡信息hostname # 设置主机名route -n # 查看路由表和网关信息netstat # 查看本机开启端口号ping ...
2020-03-17 21:06:58 112
原创 linux基础命令的操作
1.2.1 系统命令runlevel # 查看当前的运行级别systemctl status firewalld # 开启网络服务功能 stop # 关闭 restart # 重启 reload # 重载reboot...
2020-03-16 21:21:40 399
原创 crond简介
1.5.1 crond简介1.什么是crond?crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,自动执行任务2.crond作用**系统执行:**系统周期性所要执行的工作,如备份系统数据、清理缓存**个人执行:**某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否...
2020-03-16 21:19:45 2766
原创 mysql主从原理
1.1 mysql主从同步参考博客:https://www.cnblogs.com/kevingrace/p/6256603.html1. mysql主从同步(复制)概念将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引...
2020-03-15 21:11:08 691
原创 mysql的优化及慢查询
1.优化方向存储引擎的选择:INnoDB MyISAM设计数据库的设计,尽量的遵循三范式适当的建立索引查询数据的时候,注意 … 这些数据量大的时候,主从分离、分库分表、垂直/水平分割尽量采用 贵的,SSD硬盘。不选择机械硬盘一个和你项目有关数据库优化的例子2.MySQL优化常问的问题有哪些?什么是MySQL的慢查询?1.1. 什么是慢查询慢查询日志,顾名思义,就是查询慢的...
2020-03-15 20:50:33 229
原创 mysql事务与锁
MySQL事物与锁MySql锁:https://www.cnblogs.com/xiaonq/p/10420485.htmlInnoDB与MyISAM区别MyISAM不支持事物回滚,InnoDB是支持事物MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking)。InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默...
2020-03-12 21:31:40 100
原创 python基础之闭包&深浅拷贝&垃圾回收&with语句
一. 闭包1、闭包概念在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就构成了一个闭包一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。2...
2020-03-11 20:56:20 160
原创 Python基础之三器(装饰器&生成器&迭代器)
一. 装饰器1、装饰器的作用- 1.装饰器作用:本质是函数(装饰其他函数)就是为其他函数添加其他功能装饰器必须准寻得原则:1)不能修改被装饰函数的源代码2)不能修改被装饰函数的调用方式2.实现装饰器知识储备:1)函数即“变量”2)高阶函数3)嵌套函数 高阶函数+潜逃函数=》装饰器2、使用高阶函数模仿装饰器功能1)定义:把一个函数名当做实参传给另一个函数2)返回值...
2020-03-11 20:54:44 239
原创 python静态方法、类方法、属性方法、魔法方法
1、静态方法作用:静态方法可以更好的组织代码,防止代码变大后变得比较混乱。特性: 静态方法只是名义上归类管理,实际上在静态方法里访问不了类或则实例中的任何属性静态方法使用场景:1)我们要写一个只在类中运行而不在实例中运行的方法.2)经常有一些跟类有关系的功能但在运行时又不需要实例和类参与的情况下需要用到静态方法.3)比如更改环境变量或者修改其他类的属性等能用到静态方法.4)这种...
2020-03-11 20:53:00 301
原创 高阶函数和三元运算符及lambda的使用
1. 三元运算三元运算格式: result=值1 if x<y else 值2 if条件成立result=1,否则result=2**作用:**三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写三元运算name = 'Tom' if 1 == 1 else 'fly'print(name)# 运行结果: Tom三元运算与lambda结合f =...
2020-03-11 20:51:40 593
原创 python2与python3的区别&==和is的区别
一. python2 与 python3的区别简介:几乎所有的python2程序都需要一些修改才能正常的运行在python3的环境下。为了简化这个转换过程,Python3自带了一个2to3的实用脚本.这个脚本会将python2程序源文件作为输入,然后自动转换到python3.但并不是所有内容都可以自动转换。python2中print是一个语句,不论想输出什么,直接放到print关键字...
2020-03-11 20:50:44 523
原创 python的常用模块
一、 时间模块time() 与 datetime()1. time()模块中的重要函数函数描述asctime([tuple])将时间元组转换为字符串localtime([secs])将秒数转换为日期元组(转换成本国时区而不是utc时区)mktime(tuple)将时间元组转换为本地时间sleep(secs)休眠(不做任何事情)secs秒str...
2020-03-11 20:46:24 372
原创 python基础
1.进程进程https://www.cnblogs.com/xiaonq/p/7905347.html#i3进程是资源分配的最小单位( 内存、cpu、网络、io)一个运行起来的程序就是一个进程什么是程序(程序是我们存储在硬盘里的代码)硬盘(256G)、内存条(8G)当我们双击图标,打开程序的时候,实际上就是通过I/O操作(读写)内存条里面内存条就是我们所指的资源CPU分时...
2020-03-10 20:45:15 114
原创 docker-compose
1.1 docker-compose理论https://www.cnblogs.com/xiaonq/p/10256414.html1.什么是docker-compose(what)Compose是一个定义和管理多容器的工具,使用Python语言编写。使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;然后一条命令管理所有服务,比如启动、停止、...
2020-03-05 13:08:53 149
原创 django+uwsgi+nginx
1.1 概念https://www.cnblogs.com/xiaonq/p/8932266.html1.nginx和uWSGI区别nginx和uWSGI都是web服务器,都可以用来部署django等服务nginx:处理静态资源能力非常强,还可以提供 负载均衡、反向代理、攻击拦截等uWSGI:单点部署,容易部署,性能差一些,可以支持的web协议多2.uWSGI 和 uwsgi区...
2020-03-04 18:39:43 151
原创 支付宝支付
1.1 秘钥相关安装# 安装python-alipay-sdkpip install python-alipay-sdk --upgrade生成密钥文件opensslOpenSSL> genrsa -out app_private_key.pem 2048 # 私钥OpenSSL> rsa -in app_private_key.pem -pubout -...
2020-02-29 19:29:57 465
原创 docker
1.1 docker介绍https://www.cnblogs.com/xiaonq/p/10241045.html#i41.什么是dockerDocker 是应用最广泛的开源容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中docker实质就像虚拟机一样,就好像是一个具有独立操作系统的真实机器虚拟机是有真正的linux内核的,真实需要通过 .ios 文件安装操作系统...
2020-02-29 19:27:49 131
原创 技术点剖析
1.使用Redis实现分布式部署单点登录(单点登录第一种方法:redis分布式存储解决方案)因为这个项目是一个分布式部署的项目,而且我们采用的是nginx负载均衡的策略,导致了每一个服务器都需要开辟一个空间来进行用户信息的维护,消耗了大量的资源,所以,我当时使用到了Redis来作为维护用户信息的空间,将用户登录的信息存入Redis中,并且在存入时设置key的过期时间,所有的服务器共用一个Redi...
2020-02-24 09:55:49 395 1
原创 saltstack 基本使用
准备实验环境: 安装系统1)硬件配置如下2) 先把光标放到”install CentOS 7”,按 Tab键编辑内核参数,添加 (net.ifnames=0 biosdevname=0)作用:使网卡名称为 eth0 这样的格式3) 建议安装语言改成 简体中文,其他保持默认即可4)设置完root密码等待安装完成重启即可完成系统安装5)配置 VMware NAT 模式默认地址池编...
2020-01-03 15:47:21 624
原创 celery+django+redis
Celery介绍1、celery应用举例1、Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery2、你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID, 你过一段时间只需要拿着这个任务id就可以拿...
2020-01-03 15:23:41 625 1
原创 liunx命令大全
系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info...
2020-01-02 19:26:46 213 1
原创 Git的安装、操作。
安装git地址Windows:https://git-scm.com/downloadsGit配置git config --global:全局git配置,这台机器所有的Git仓库均会使用这个配置git config --global user.name "eastside" # 你的名字git config --global user.email "..@xx.com" # 你...
2019-12-19 11:40:32 142
原创 什么是Git?Gitlab和Github区别
一、什么是Gitgit 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 发布。最初目的是为更好地管理 Linux 内核开发而设计。应注意的是,这与 GNU Interactive Tools 有所不同。 git 最初的开发动力来自于 BitKeeper 和 Monotone。git 最初的开发动力来自于 BitKeeper 和 Monotone。git 最初只...
2019-12-19 11:13:14 9314
原创 运维工作梳理
1.1 inux运维的主要工作内容1、什么是linux运维运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常。在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术。运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等。运维分类:1)开发运维:是给应用运维开发运维工具和运维平台的2)...
2019-12-19 07:44:12 8820 3
原创 CI(持续集成)/CD(持续交付/持续部署)
一、传统交付1. 传统软件的开发与交付的周期都很漫长,从需求的分析、系统的设计、编写测试用例、系统开发、单元测试、组装测试到交付调试。2. 每一次交付、升级,都需要提供基础的硬件、软件的环境、软件的代码、软件的文档与手册。3. 工程师都按照之前预演过好多遍的流程,对照着系统的部署手册,一步一步的组装硬件,安装软件,稍有差池,就要按照对应的应急预案进行回滚。二、技术工程师日常 与 痛点1...
2019-12-18 21:08:33 729
原创 自动化运维架构(开发)
一、DevOps定义1. DevOps是“开发”和“运维”的缩写。2. DevOps是一组最佳实践强调(IT研发、运维、测试)在应用和服务生命周期中的协作和沟通3. 强调整个组织的合作以及交付和基础设施变更自动化,从而实现持续集成、持续部署和持续交付二、DevOps持续交付环1. 我们把开发交付划分为: 计划 --> 编码 --> 构建 --> 测试 --> ...
2019-12-18 21:02:40 1109
原创 Python 生成 JWT(json web token) 及 解析方式
一.关于 jwt 的原理及概念可以自行在网络上搜索了解一下,这里推荐一篇写的比较好的博客深入了解Json Web Token之概念篇另附 JWT 的官方文档: https://jwt.io/introduction/二.python 对于 jwt 的实现, 目前已经存在了一些第三方的库, 相信学习过 python 的程序猿都知道 itsdangerous 这个库了, 它的底层原理就是基于 j...
2019-12-18 20:23:40 931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人