自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 学习Excel

自定列表的位置:文件 --> 选项 --> 高级 --> 编辑自定义列表##Ctrl+enter的使用可以用来给多个不连续的单元格填写同数据。先选中多个不同的单元格,输入想要输入的数据,按Ctrl+enter补全。给多个不连续的单元格填写不同数据,先选中全部数据,按Ctrl+g打开定位,选择定位条件,再选择空值,写入=和第一排数据的地址,再按Ctrl+enter。

2022-10-27 20:50:46 790 1

原创 Git-基础指令

目录什么是Git为什么要做版本控制安装Git版本控制git命令管理git提交命令git重命名方式一方式二git删除未管理文件管理了的文件git回滚回滚之前的版本回滚之后的版本创建分支合并分支删除分支总结什么是GitGit是一个分布式的版本控制软件。• 软件,类似于QQ、office等安装到电脑上才能使用的工具• 版本控制,类似于毕业论文、写文案、视频剪辑等,需要反复修改和保留原历史数据• 分布式• 文件夹拷贝• 本地版本控制• 集中式版本控制• 分布式版本控制为什么要做版本控制要保留之

2021-04-11 14:39:54 123

原创 Redis收藏

Redis面试一、Redis 概念理解什么是 Redis?Redis 全称为:Remote Dictionary Server(远程数据服务),是一个基于内存且支持持久化的高性能 key-value 数据库。具备一下几个基本特征:多数据类型持久化机制主从同步Redis 的特点有哪些?Redis 本质上是一个 key-value 类型的数据库整个数据库都是在内存中进行操作,可定期刷新到磁盘进行持久化存储由于是在内存操作,读写能力非常好,每秒可以处理 10 万次读写操作Redis 支持

2021-04-10 13:46:46 596

转载 7个维度+43条使用规范

目录如何使用 Redis 更节省内存?1) 控制 key 的长度2) 避免存储 bigkey3) 选择合适的数据类型4) 把 Redis 当作缓存使用5) 实例设置 maxmemory + 淘汰策略6) 数据压缩后写入 Redis如何持续发挥 Redis 的高性能?1) 避免存储 bigkey2) 开启 lazy-free 机制3) 不使用复杂度过高的命令4) 执行 O(N) 命令时,关注 N 的大小5) 关注 DEL 时间复杂度6) 批量命令代替单个命令7) 避免集中过期 key8) 使用长连接操作 Re

2021-04-07 21:59:13 205

转载 Redis-慢查询

目录如何进行慢查询?修改配置项慢查询演示慢查询其他相关命令查询指定条数慢日志获取慢查询队列长度清空慢查询日志Redis 慢查询作用和 MySQL 慢查询作用类似,都是为我们查询出不合理的执行命令,然后让开发人员和运维人员一起来规避这些耗时的命令,从而让服务器更加高效和健康的运行。对于单线程的 Redis 来说,不合理的使用更是致命的,因此掌握 Redis 慢查询技能对我们来说非常的关键。如何进行慢查询?在开始之前,我们先要了解一下 Redis 中和慢查询相关的配置项,Redis 慢查询重要的配置项有以

2021-04-06 17:25:40 72

转载 Redis-性能测试

目录为什么需要性能测试?性能测试的几种方式基准测试实战基本使用精简测试管道测试基准测试的影响元素为什么需要性能测试?性能测试的使用场景有很多,例如以下几个:技术选型,比如测试 Memcached 和 Redis;对比单机 Redis 和集群 Redis 的吞吐量;评估不同类型的存储性能,例如集合和有序集合;对比开启持久化和关闭持久化的吞吐量;对比调优和未调优的吞吐量;对比不同 Redis 版本的吞吐量,作为是否升级的一个参考标准。等等,诸如此类的情况,我们都需要进行性能测试。性能测试

2021-04-06 17:13:40 88

转载 Redis-内存淘汰机制与算法

目录Redis 最大运行内存查询最大运行内存内存淘汰策略查看 Redis 内存淘汰策略内存淘汰策略分类修改 Redis 内存淘汰策略内存淘汰算法LRU 算法LFU 算法Redis内存淘汰机制指的是,当Redis 运行内存已经超过 Redis 设置的最大内存之后,将采用什么策略来删除符合条件的键值对,以此来保障 Redis 高效的运行。Redis 最大运行内存只有在 Redis 的运行内存达到了某个阀值,才会触发内存淘汰机制,这个阀值就是我们设置的最大运行内存,此值在 Redis 的配置文件中可以找到,

2021-04-06 16:32:32 84

转载 Redis-缓存雪崩&缓存穿透&缓存击穿

目录缓存雪崩随机化过期时间加锁排队缓存穿透使用过滤器缓存空结果缓存雪崩缓存雪崩是指在短时间内,有大量缓存同时过期,导致大量的请求直接查询数据库,从而对数据库造成了巨大的压力,严重情况下可能会导致数据库宕机的情况叫做缓存雪崩。我们先来看下正常情况下和缓存雪崩时程序的执行流程图,正常情况下系统的执行流程如下图所示:缓存雪崩的执行流程,如下图所示:缓存雪崩的常用解决方案有以下几个。随机化过期时间为了避免缓存同时过期,可在设置缓存时添加随机时间,这样就可以极大的避免大量的缓存同时失效。加锁排队

2021-04-05 22:34:31 75

转载 Redis-布隆过滤器

目录简介安装布隆过滤器下载并安装布隆过滤器启动 Redis 服务器启动验证简介我们前面有讲到过 HyperLogLog 可以用来做基数统计,但它没提供判断一个值是否存在的查询方法,那我们如何才能查询一个值是否存在于海量数据之中呢?讲个使用场景,比如我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的?你会想到服务器记录了用户看过的所有历史记录,当推荐系统推荐新闻时会从每个用户的历史记录里进行筛选,过滤掉

2021-04-05 22:20:50 221

转载 Redis-基数统计算法-HyperLogLog

目录为什么要使用 HyperLogLog?HyperLogLog 介绍HLL 算法原理(了解)为什么要使用 HyperLogLog?在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,该用什么的类型来统计?如果我们使用 Redis 中的集合来统计,当它每天有数千万级别的访问时,将会是一个巨大的问题。因为这些访问量不能被清空,我们运营人员可能会随时查看这些信息,那么随着时间的推移,这些统计数据所占用的空间会越来越大,逐渐超出我们能承载最大空间。例如,我们用 IP

2021-04-05 22:02:15 331

转载 Redis-查询附近的人-GEO

目录命令基础使用查询位置信息距离统计查询某位置内的其他成员信息1. WITHCOORD2. WITHDIST3. WITHHASH4. COUNT count5.ASC|DESC查询哈希值删除地理位置应用场景小结注意事项我们所处的任何位置都可以用经度和纬度来标识,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。命令Redis 在 3.2 版本中增加了 GEO 类型用于存

2021-04-04 16:20:41 231 2

转载 Redis-管道技术

Redis 管道技术—Pipeline管道技术(Pipeline)是客户端提供的一种批处理技术,用于一次处理多个 Redis 命令,从而提高整个交互的性能。通常情况下 Redis 是单行执行的,客户端先向服务器发送请求,服务端接收并处理请求后再把结果返回给客户端,这种处理模式在非频繁请求时不会有任何问题。但如果出现集中大批量的请求时,因为每个请求都要经历先请求再响应的过程,这就会造成网络资源浪费,此时就需要管道技术来把所有的命令整合一次发给服务端,再一次响应给客户端,这样就能大大的提升了 Redis

2021-04-04 15:45:21 257

转载 Redis-事务

redis事务事务基本使用开启事务命令入列执行事务/放弃事务事务错误&回滚执行时错误入列错误不会导致事务结束入列错误导致事务结束为什么不支持事务回滚?小结事务基本使用事务在其他语言中,一般分为以下三个阶段:• 开启事务——Begin Transaction• 执行业务代码,提交事务——Commit Transaction• 业务处理中出现异常,回滚事务——Rollback TransactionRedis 中的事务从开始到结束也是要经历三个阶段:• 开启事务• 命令入列• 执行事务

2021-04-04 15:24:44 252

转载 redis-持久化RDB、AOF

目录Redis 持久化—RDBRDB简介手动触发自动触发配置说明RDB 优缺点Redis持久化-AOF简介持久化查询和设置自动触发手动触发AOF 文件重写配置说明AOF优缺点Redis 持久化—RDBRedis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。持久化的几种方式Redis 持久化拥有以下三种方式:• 快照方式(

2021-04-04 15:04:55 87

原创 redis-主从配置

配置文件设置主机配置文件更改从机配置文件更改主机配置文件更改将bind后的127.0.0.1改成0.0.0.0(可以让任意IP连接)从机配置文件更改把bing后面的IP改成主机的IP因为是在同一台电脑,所以需要把port后的端口改一下(同一天电脑端口不能相同,主机是6379,从机不能再是6379)在replicaof 后先写主机IP,再写主机端口即可...

2021-03-31 21:53:05 56

转载 Redis内存数据库-基础语法

Redis数据库的发展历史Redis是什么?Redis特性Redis有什么用?Redis应用场景Redis怎么用?Redis5.0安装Redis的配置文件Redis数据库简单使用redis常用五大数据类型1.redis-string2.redis-list(单值多value)3.redis-Hash4.redis-set(不重复的)5.redis-Zset数据库的发展历史1.在互联网+大数据时代来临之前,企业的一些内部信息管理系统,一个单个数据库实例就能满足系统的需求单数据库实例2.随着系统访问用户

2021-03-31 19:44:45 146

转载 Utuntu-高级命令

高级命令重定向命令查看、编辑文件内容命令的使用链接命令文本搜索命令查找文件命令压缩和解压缩命令文件权限命令获取管理员权限的相关命令用户相关操作用户组相关操作软件安装编辑器 vim重定向命令重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件。命令例子:tree > 1.txtll >> 1.txt说明:只要在终端能显示信息的命令都可以使用重定向,比如: tree小结• 终端内容保存到文件使用重定向有两种方式: > 和 >>• > 表

2021-03-27 15:35:03 145

原创 Utuntu-基础命令

基础命令查看目录切换目录绝对路径和相对路径创建、删除文件及目录命令复制、移动文件及目录命令终端命令格式说明查看命令帮助查看目录查看目录命令的使用ls查看当前目录信息ls -l 或者ll以列表的方式显示ls -h显示件的大小,默认是字节ls -a显示隐藏文件和隐藏目录列表显示的信息说明tree以树状方式显示目录信息pwd查看当前目录路径clear清除终端内容也可以使用Ctrl+l切换目录cd 目录直接切换到指定目录cd ~切换到当前目录的主目录cd …

2021-03-22 18:16:03 172

转载 数据库-分页查询优化

两种情况的分页查询• 根据自增且连续主键排序的分页查询• 查询根据非主键字段排序的分页查询根据自增且连续主键排序的分页查询首先来看一个根据自增且连续主键排序的分页查询的例子select * from t1 limit 99000,2;该 SQL 表示查询从第 99001开始的两行数据,没添加单独 order by,表示通过主键排序。我们再看表 t1,因为主键是自增并且连续的,所以可以改写成按照主键去查询从第 99001开始的两行数据,如下:select * from t1 where id

2021-03-14 14:49:01 190

转载 数据库-排序优化

原则:永远小表驱动大表order by子句,尽量使用index方式排序,避免使用filesort方式排序MySQL支持两种方式的排序,filesort和index,index效率高,MySQL扫描索引本身完成排序。filesort方式效率较低order by 满足两种情况下,会使用index方式排序• 1.order by 语句使用索引最左前列• 2.使用where子句与order by子句条件组合满足索引最左前列Filesort 是在内存中还是在磁盘中完成排序的?MySQL 中的 Files

2021-03-14 14:19:49 261

转载 数据库-Join语句优化

关联查询的算法• Nested-Loop Join 算法• Block Nested-Loop Join 算法Nested-Loop Join 算法一个简单的 Nested-Loop Join(NLJ) 算法一次一行循环地从第一张表(称为驱动表)中读取行,在这行数据中取到关联字段,根据关联字段在另一张表(被驱动表)里取出满足条件的行,然后取出两张表的结果合集。我们试想一下,如果在被驱动表中这个关联字段没有索引,那么每次取出驱动表的关联字段在被驱动表查找对应的数据时,都会对被驱动表做一次全表扫描,成

2021-03-14 13:58:51 164

转载 数据库-SQL索引优化

回表假设我们执行一条查询语句select * from person where ID = 6,因为直接使用的是主键ID查询,所以就会用主键索引,由于主键索引直接关联了整行所有数据,所以,引擎只要执行一次就能查询出结果。如果执行的sql语句是非主键索引select * from person where age = 18上述语句会走age的普通索引,索引先根据age搜索等于18的索引记录,找到ID=10的记录,然后再到主键索引搜索一次,然后拿出需要查询的数据。从普通索引查出主键索引,然后查询出

2021-03-14 10:42:11 462

转载 数据库-SQL语句分析

影响服务器性能的几个方面1.服务器硬件2.服务器的操作系统3.数据库存储引擎的选择4.数据库参数配置5.数据库结构设计和SQL语句SQL性能下降原因• 查询语句写的不好• 索引失效• 关联查询太多join• 服务器调优及各个参数设置SQL加载顺序手写SQL的顺序select distinct <select _list>from <left_table>join <right_table> on <join_cod

2021-03-14 10:40:23 234

原创 数据库-存储引擎

MyISAMMyISAM存储引擎特性1.并发性与锁级别2.表损坏修复3.MyISAM表支持数据压缩适合场景1.非事务型应用2.只读类应用InnodbInnodb存储引擎的特性1.支持事务的ACID特性2.Innodb支持行级锁,可以最大程度的支持并发MyISAM和InnoDB对比CSV文件系统存储特点数据以文本方式存储在文件中.CSV文件存储表内容.CSM文件存储表的元数据如表状态和数据量.frm文件存储表结构信息使用场景适合做为数据交换的中间表MemoryMe

2021-03-10 19:52:56 83 1

原创 数据库-索引

索引的目的当数据库的数据量很大的时候,查找就变得很慢,索引的出现就是为了高效率的查询。索引的原理索引就类似于查字典时的目录。索引的使用查看索引show index from 表名;创建索引如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致。字段类型如果不是字符串,可以不填写长度部分。create index 索引名称 on 表名(字段名称(长度))删除索引drop index 索引名称 on 表名;适合建立索引的情况• 主键自动建立索引• 频繁作为查询条件

2021-03-10 19:06:12 47

转载 数据库-事务以及隔离级别

事务四大特性(简称ACID)• 原子性(Atomicity)• 一致性(Consistency)• 隔离性(Isolation)• 持久性(Durability)• 原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性• 一致性(consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。(在前面的例子中,一致性确保了,即使在执行第

2021-03-10 18:44:20 88

原创 数据库-视图

视图视图介绍视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。定义视图create view 视图名称 as (select 语句)例子:CREATE VIEW v_pro AS SELECT * FROM provinces;使用视图select * from v_pro;删除视图drop view 视图名称;视图的作用1.简单:提高了重用性,就像一个函数

2021-03-08 22:19:24 102 1

原创 数据库-MySQL的基础语法

目录#操作数据库(DDL)#操作表操作数据库(DDL)连接数据库mysql -u用户名 -penter password:密码退出数据库exitquit查看已经创建的数据库SHOW DATABASES;注意• mysql不严格区分大小写• 分号作为结束符,必须写查看数据库版本select version();创建数据库CREATE DATABASE 数据库名;CREATE DATABASE 数据库名 charset=utf8;注意• charset:指定编码为ut

2021-02-03 21:31:49 608

原创 11-继承、魔法方法

作业1.士兵老 Amy 有一把枪 (AK47),士兵可以开火枪能够发射子弹枪能够添加子弹枪类 :属性 : 型号 , 子弹数量行为 : 发射子弹 , 添加子弹士兵类:属性:士兵名称 , 枪支行为:开火行为 ( 需考虑到:是否有枪支?以及添加子弹 , 发射子弹)2.车类 1 :属性 : 颜色 , 轮子个数 ( 默认 4 个 ), 重量级 , 速度 ( 默认为 0)行为 : 加速 , 减速 , 停车车类 2 :属性:在基于车类 1 的基础上 , 添加一些比如:牌子 , 型号 , 空调

2021-01-21 10:07:34 136

原创 10-面向对象

作业1.玩个特别无聊的游戏 , 猜数字。玩家输入一个数字与计算机随机生成的数字作对比当两个值相等时 , 则说明用户猜对了。(注意 : 外部不能获取到计算机随机生成的值)2.创建一个煎饼类 调用烹饪时长的方法累计煎饼状态如果煎的时间在 0-3 之间则状态为生的如果煎的时间在 3-5 之间则状态为半生不熟的如果煎的时间在 5-8 之间则状态为全熟的当时间超过 8 分钟状态焦了并且还可以给煎饼添加作料比如大葱 (hhh), 大蒜 (hhh) , 烤肠等等答案 import rando

2021-01-13 14:46:03 104

原创 09-函数推导式

作业1.2.3.答案def zuoye1(): names = ["jerry", "hansen", "Amy", "Wendy", "Tom", "Bob"] list1 = [i.upper() for i in names if len(i) <= 3] print(list1)def zuoye2(): list1 = [i for i in range(0, 5) if i % 2 == 0] list2 = [i for

2021-01-06 23:14:13 146

原创 08-函数、匿名函数、递归

作业1.定义一个函数 完成用户输入的三个数字的求和以及在另一个函数求该和的平均值 ( 用到函数传参 , 函数返回值 )2.将列表 l 输出如下。 l = [“jack”,(“tom”,23),“rose”,(14,55,67)]提示 : 用递归实现3.将list1 = [4, -2, 3, 1]变成list1 = [1, -2, 3, 4]4.infors = [{‘name’: ‘qian’, ‘age’: 28}, {‘name’: ‘amy’, ‘age’: 20}, {‘name’: ‘

2021-01-06 19:31:18 157

原创 07-元组和字典

作业答案作业2def zuoye2(): for i in range(100,1000): x = i%10 a = i//10 y = a%10 z = a//10 if i == z**3 + y**3 + x**3: print(f'水仙花数是:{i}')作业3def zuoye3(): i = 1 while i: temp1 = inp

2020-12-30 19:46:26 108 1

原创 06-数据类型——字典

作业list1 = [‘name’,‘author’,‘introduce’]list2 = [‘NORWEGIAN WOOD’,‘Haruki Murakami’,‘balalalala…’]将list1与list2以键对值的形式呈现Amy_info = {‘name’:‘amy’,‘addr’:‘hunan’,‘weight’:90} 获取Amy_info的key,value用户输入随机数个数N,生成N个1到1000内的随机数,去掉相同的,从小到大排序字节如何转换字符

2020-12-28 11:46:35 121

原创 05-数据类型——字节、列表

字节字节与字符串转换我们通常会将 bytes类型 与 str类型 做转换。bytes转为str—> bytes.decode() 解码str转为bytes—> str.encode() 编码列表列表也是可以切片的,切片模式和字符串一样的,具体可以看04-数据类型——布尔、字符串中的切片方法访问 ( 查 ) 列表内的元素列表 从0开始 为它的每一个元素顺序创建 下标索引,直到 总长度减一 。要访问它的某个元素,以方括号加下标值的方式即可。注意要确保索引不越界,一

2020-12-28 10:44:39 104

原创 04-数据类型——布尔、字符串

作业1.当输入 y 或 Y 打印进入卸载,当输入 n 或 N 打印退出程序,输入其它则打印输入不在选项范围之内归纳布尔类型、空值、字符串类型的重点完成字符串的逆序以及统计设计一个程序,要求只能输入长度低于 20 的字符串,当满足需求时,则打印出字符串长度以及使用切片逆序打印出字符串当不满足需求时,打印用户重新输入’3’+’4’ 的结果是什么?答案1.def zuoye1(): str1= input('请输入:') if str1.upper() == 'Y

2020-12-28 09:41:52 526 1

原创 03-运算符

作业1.判断 “amy” 是否在[“bob”,“tony”,“Lisa”,“Steven”] 里面如果在则输出 'amy '在逻辑大家庭 '否则输出 ’ amy '不在 … 好难过2.‘ax’<’xa’ 为 True 还是 False?为什么?3.以下程序如果输入 666 执行那个语句 ? 为什么 ?temp = input(’ 请输入: ')if temp == ‘Yes’ or ‘yes’:print('if 执行了! ')else:print('else 执行了!)4.

2020-12-25 23:47:42 224 3

原创 02-Python基础语法

作业1.以下命令不符合标识符规则的有(多选)A. list = [1,2,3,4]B. 01_a = 1C. name = ‘amy’D. 年龄 = 182.a = 6 ,b = 8,实现a = 8,b = 63.用户输入id_card判断id_card是否为全数字,是,则打印输出id_card,否,则打印输出‘id_card格式错误’4.print(‘12’),print('34’),使用一个print语句实现上面两个print()语句的输出效果答案1.ABDA,list是pytho

2020-12-24 23:33:09 418

原创 01-Python环境搭建

1.配置系统环境2.1使用python idle输出‘hello world’。2.2使用ipython输出‘hello world’。2.3使用pycharm输出‘hello world’。

2020-12-24 22:07:19 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除