自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(411)
  • 资源 (5)
  • 收藏
  • 关注

原创 【数据结构与算法】python 冒泡排序

"""冒泡排序.重点.比较相邻元素,比较大小后交换位置.<位置1, 位置2, 位置3, 位置4, 位置5>比较<1,2> <2,3> <3,4> <4,5>第一轮结束,5号位置一定是最大的.第2轮, 最大的两个<4,5>号位排序完成.第n轮,排序结束.编写思路,先写交换位置的for i in range(len(num_list) - 1): # 交换位置 if num_list[i] &g

2021-12-28 20:52:45 885 1

原创 【elasticsearch】msearch查询

""" kibanaPOST /_msearch{"index":"blog"}{"query":{"match":{"name":"python"}}}{"index":"blog"}{"query":{"match":{"name":"java"}}}"""import jsonfrom elasticsearch import Elasticsearches = Elasticsearch(["127.0.0.1:9200"])a = [{"index": "blog"},.

2021-12-21 20:13:25 2892

原创 Elasticsearch 索引相关命令

查询索引信息# 查索引简要信息,比如 索引状态, 索引名字uuid,分片副本数量,文档存储个数大小等GET /_cat/indices/indexname?vcurl -XGET "http://localhost:9200/_cat/indices/indexname?v"# 查看该索引详细信息,aliases mappings settingsGET indexnamecurl -XGET "http://localhost:9200/indexname"# 查询别名GET /_c

2021-11-14 21:44:10 1864

原创 什么是倒排索引

倒排索引正排索引?倒排索引 !正排索引举例子: 这句话比如存储id为 1949, text为我爱你中国存储格式可能如下. 查找的时候, 比如我们搜索中国那么肯定是便利所有的key_id,再去看里面value=中国的. 将所有匹配的数据取出.搜索引擎收录的文档是个天文数字,这样做无法满足实时返回结果的要求.keyvalue 1value 2value 3value 41949我爱你中国倒排索引还是上面的例子 1949:我爱你中国倒排索引, 就

2021-11-14 20:18:47 197

原创 CSDN博客 不登录不能复制粘贴

说在最开头, 如果不好使,可能有效性过期了.步骤如下F12, 页面元素中搜索 content_views删除 id=“content_views”,直接改为 id=""最方便可以愉快的ctrl+cv了

2021-11-14 15:17:10 2501

原创 Nginx Lua 根据参数请求转发

环境安装mkdir /usr/local/LuaJIT cd /usr/local/LuaJIT wget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -xvf LuaJIT-2.0.2.tar.gzexport LUAJIT_LIB=/usr/local/libexport LUAJIT_INC=/usr/local/include/luajit-2.0mkdir /usr/local/nginxcd /usr/local/ngi

2021-09-25 15:28:06 850

原创 Linux命令 查询文件n行内容

# 查看文件前5行head -n 5 file# 查看文件后5行tail -n 5 file# 查看3-6行内容sed -n '3,6p' file# 查看内容带xxx的前后5行# 显示xxx字串那行以及上下5行grep -5 xxx filegrep -C xxx filegrep -B 5 xxx file 显示xxx及前5行grep -A 5 xxx file 显示xxx及后5行...

2021-05-25 07:10:12 596

原创 查询建议suggester

查询建议suggester三种建议器termphrasecompletionterm suggester准备数据PUT s2{ "mappings": { "properties": { "title": { "type": "text", "analyzer": "standard" } } }}PUT s2/_doc/1{ "title": "Lucene is cool"}PUT s2

2021-04-18 23:56:45 172

原创 elasticsearch 自定义分析器

自定义分析器分析器analyzer主要有以下几个字段type 指定内置的分析器,custom可以忽略tokenizerchar_filterfilterposition_increment_gap 目前还没用到,不知道各个作用analyzer/analysis (分析器)文档document 如何转化为 倒排索引,一段text变成一个个term,这个过程叫做文本分析.Tokenizer(分词器)语干中提取词元(Token)Filter(过滤器)Character Fi

2021-04-14 00:08:42 274

原创 elasticsearch bool查询

bool 查询must:与关系,相当于关系型数据库中的and。should:或关系,相当于关系型数据库中的or。must_not:非关系,相当于关系型数据库中的not。filter:过滤条件。range:条件筛选范围。gt:大于,相当于关系型数据库中的>。gte:大于等于,相当于关系型数据库中的>=。lt:小于,相当于关系型数据库中的<。lte:小于等于,相当于关系型数据库中的<=。psmust和filter经常连用, should和filter不常在一起

2021-04-13 23:42:00 482 1

原创 elasticsearch highlight高亮查询

高亮查询highlight预制数据PUT zhifou/doc/4{ "name":"石头", "age":29, "from":"gu", "desc":"粗中有细,狐假虎威", "tags":["粗", "大","猛"]}默认的高亮"highlight" : { "name" : [ "<em>石</em><em>头</em>" ] }G

2021-04-13 23:28:32 482

原创 elasticsearch 重建索引

重建索引当索引改变数据结构的时候,需要重建索引。步骤lol取别名lol_latest, lol_latest作为对外的使用对象新增索引lol_20210409,mapping结构使用业务修改后的。同步数据给lol_20210409添加和lol相同的索引名lol_latest,删除lol的别名lol_latest删除lol索引# 获取所有索引简要信息GET /_cat/indices# 新增一个索引lolPUT /lol# 创建数据结构PUT /lol/_mapping{

2021-04-09 00:14:44 220

原创 bulk 批量导入

bulk 批量导入{"index": {"_index": "book", "_type": "_doc", "_id": 1}}{"name": "权利的游戏"}{"index": {"_index": "book", "_type": "_doc", "_id": 2}}{"name": "疯狂的石头"}# filename 是批量导入的文件名curl -X POST "localhost:9200/_bulk" -H 'Content-Type: application/json' -

2021-04-05 22:41:47 222

原创 elasticsearch 中文分词器

中文分词器使用默认分词器查询中文。# 可以看到一个中文是一个词,对于中文很不友好,所以需要使用中文分词器curl --location --request POST 'localhost:9200/_analyze' \--header 'Content-Type: application/json' \--data-raw '{ "analyzer": "standard", "text": "RNG今年总冠军"}'>>>>>>>&g

2021-04-05 21:03:42 207

原创 elasticsearch 分词器介绍和使用

分词器介绍和使用什么是分词器?就是将一段文本text,拆分成多个关键词keyword 的工具。常用分词器standard analyzersimple analyzerwhitespace analyzerstop analyzerlanguage analyzerpattern analyzerstandard analyzer# 标准分词器,默认的。# 大写变小写# 去掉了符号POST localhost:9200/_analyze{ "analyzer": "

2021-04-05 20:41:56 281

原创 简单搜索

简单搜索预置学习数据# 删除索引DELETE localhost:9200/nba# 创建索引,指定mappingPUT localhost:9200/nba{ "mappings": { "properties": { "name": { "type": "text" }, "team_name": { "type": "text"

2021-04-05 20:13:38 130

原创 doc 文档的增删改查

文档的增删改查新增文档PUT localhost:9200/nba/_doc/1{ "name": "hadeng", "team_name": "勇士", "position": "得分后卫", "play_year": "10", "jerse_no": "13"}新增自增id使用POST,不能用PUT了POST localhost:9200/nba/_doc/1{ "name": "hadeng", "team_name":

2021-04-05 18:09:56 179

原创 mapping 映射的简单操作

mapping 映射的介绍text 会被分词keyword 不会被分词新增curl -X PUT "localhost:9200/nba/_mapping" -H 'Content-Type: application/json' -d'{ "properties": { "name": { "type": "text" }, "team_name": { "type": "text" }, "position": {

2021-04-04 21:52:15 1075

原创 alias 索引别名操作

alias 索引别名查询别名# 查询指定索引别名curl -X GET "localhost:9200/nba/_alias"{ "nba" : { "aliases" : { } }}# 查询所有索引别名curl -X GET "localhost:9200/_alias"{ "nba" : { "aliases" : { } }, "cba" : { "aliases" : { } }}新增别名# 新增别名 nab -&gt

2021-04-01 00:19:04 312

原创 elasticsearch index索引操作

elasticsearch index入门新增索引curl -X PUT "localhost:9200/nba"{"acknowledged":true,"shards_acknowledged":true,"index":"nba"}获取索引curl -X GET "localhost:9200/nba"curl -X GET "localhost:9200/nba?pretty"{ "nba" : { "aliases" : { }, # 别名 "mapp

2021-03-31 23:40:13 412

原创 服务注册与发现(python+etcd)

服务注册与发现简单的实现思路如下。服务端启动时,向中心注册, 写入服务器信息.停止时,服务器数据从中心删除。客户端启动时,可以获取所有可用服务器的信息。# 服务端向etcd注册 key value 如下# 客户端 获取以/job/demo开头的所有value,即可知道有哪些服务器可用。key1:/job/[email protected]:9001 value1:127.0.0.1:9001key2:/job/[email protected]:9002 value2:127.0.0.1:9

2021-03-11 00:50:03 1806

原创 消息队列的消息丢失、重复、积压

消息队列 MQ# 好处系统解耦流量控制,削峰填谷# 引入的问题系统解耦,分布式,带来了数据一致性问题,数据丢失与重复流量控制,也会导致消息堆积的问题。保证数据不丢失?# 消息生成阶段send -> ack确认响应,向消息队列存消息的时候,处理好响应结果和异常就可以保证发送成功了。# 消息存储阶段简单的就是交给中间件来保障消息存储不丢失但是我们也要理解原理,比如Broker副本,至少同步两个节点再返回ack确认响应。# 消息消费阶段获取消息后,先不要给Broker发

2021-03-09 23:52:56 296 1

原创 海量并发下的事物一致性

事物:一系列操作,要么都执行,要么都不执行。事物的一致性:分布式的情况下,比如下订单,有订单系统,商品库存,支付系统等。每一个子系统执行的操作,都是一个事物。所有子系统执行的操作,合起来还可以看成一个事物。强一致性:就是同步执行各个事物,所有都正确执行。最终一致性:可以通过消息队列完成,比如商品和支付先执行,通过消息队列发给订单系统,因为消息队列可以数据持久化,我们认为商品系统的事物一定会正确执行,这样最终的结果也是正确的,就是最终一致性。实现分布式的一致性:除了消.

2021-03-08 23:46:04 152

原创 海量存储下的哈希分片

哈希分片哈希(商品ID) % 存储节点数Hash后取模,比如我们有4个存储节点取模结构为0,则存在1号节点上。取模结构为1,则存在2号节点上。取模结构为2,则存在3号节点上。取模结构为3,则存在4号节点上。这就是最简单的哈希分片**优点:**实现了数据的均匀分布,且实现起来简单。**缺点:**扩展性差,比如我们节点变动,由4个增加到5个,会导致大规模数据迁移。如何保证扩展性呢?一致性Hash将存储节点和数据都进行哈希,映射到一个环上。存储节点一般根据IP进行HASH数据就使用唯

2021-03-07 22:52:00 327

原创 Serverless 无服务架构

serverless 无服务架构是一种软件架构思想和方法无需关注应用软件运行 的底层服务器状态,包括cpu、内存、磁盘、网络等,由底层的云计算平台动态提供。用户开发完应用后,部署到支持serverless的云计算平台上,平台负责部署应用到特定主机上当访问量高时,会自动增加应用部署实例。当访问量低时,云计算平台会自动卸载回收应用。# 腾讯云serverlesshttps://serverless.cloud.tencent.com/start?c=sls...

2021-02-12 17:35:03 224 2

原创 CAP理论

CAP理论是分布式计算领域的。C -> Consistency 一致性A -> Availability 可用性P -> Partition Tolerance 分区容错性# 一致性客户端一定可以访问到最新的数据。一致性细分又分为 强一致性、弱一致性、最终一致性。https://zhuanlan.zhihu.com/p/67949045# 可用性没有出现故障的节点,一定可以正常返回,且返回非超时,非系统性错误的响应。# 分区容错性当网络出现故障的时候,系统可

2021-02-06 22:03:00 84

原创 006 Nginx 全局异常兜底Json数据返回

Nginx 全局异常 返回jsonlocation / { proxy_pass http://lbs; proxy_redirect default; # 存放用户的真实ip proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_

2020-12-24 22:57:01 492

原创 005 Nginx 负载均衡

负载均衡 upstream# 这个和server同级别配置upstream lbs { server 192.168.56.11:8081; server 192.168.56.11:8082;}location /api/ { proxy_pass http://lbs; proxy_redirect default;}配置权重weightupstream lbs { server 192.168.56.11:8081 weight=5;

2020-12-24 22:56:21 183

原创 004 Nginx日志挖掘accessLog

日志模版 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"';实际记录的日志192.168.56.1 - - [23/Dec/20

2020-12-24 22:55:45 269

原创 003 Nginx静态资源服务器

配置多域名 同端口 server服务首先修改本机的host文件,为了后面的域名访问# windowsC:\Windows\System32\drivers\etc\hosts# linux/etc/hosts将域名放入到 hosts中192.168.56.11 aa.com192.168.56.11 bb.com配置conf,配置两个域名,然后修改 Index.html,访问看效果server { listen 80; server_name aa.

2020-12-24 22:55:11 92

原创 002 Nginx 基础

核心目录conf #配置文件 nginx.conf # 默认的配置文件 nginx.conf.default # 默认配置模板备份 html # 编译安装时,Nginx的默认站点目录 50x.html #错误页面 index.html # 默认首页 logs # nginx默认日志路径 error.log # 错误日志 nginx.pid # nginx进程号 access.log #nginx访问日志 sbin # 程序目录 nginx # 启动命令常见命令# 启动.

2020-12-24 22:54:32 102 1

原创 001 Nginx 安装

Nginxhttp://nginx.org/en/download.htmlhttp://nginx.org/download/nginx-1.18.0.tar.gz# 安装依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel# 解压nginx包tar -zxvf nginx-1.18.0.tar.gz# 编译cd nginx-1.18.0./configuremakemake install

2020-12-24 22:53:48 144

原创 链表:头插法实现逆序

#!/usr/bin/env python# coding: utf-8"""实现链表的逆序给定一个带头节点的单链表,将其逆序。head->1->2->3->4->5变为head->5->4->3->2->1https://www.bilibili.com/video/BV1AD4y1d7LX?from=search&seid=9167067349614497192"""# 定义链表的节点类class List

2020-12-20 22:39:00 1069 1

原创 Redis 知识点 scan和keys 定位大key

在Redis中,查找特定条件的Key和定位大Keykeys *注意:keys 算法是遍历算法,复杂度是 O(n)没有 offset、limit 参数,不能控制返回的数量keys *keys game*keys gam*lolscan# 先录入一些keyimport redisclient = redis.StrictRedis()for i in range(10000): client.set("key%d" % i, i)现在 redis 中 有 1000

2020-12-14 00:23:07 773

原创 策略模式

"""策略模式1.Strategy 抽象的策略类2.XXXStratege 具体的策略类3.Context 上下文类 -> 设置/转换策略 执行策略"""from abc import ABCMeta,abstractmethod# ----------- 抽象的策略 接口 ----------- class Strategy(metaclass=ABCMeta): @abstractmethod def execute(self,data):

2020-12-13 23:28:32 83

原创 02 Django和数据库 更改表结构的命令

makemigrationspython manage.py makemigrations consumer 这个命令会扫描consumer应用中的模型在 consumer\migrations\0001_initial.py生成一个迁移文件sqlmigratepython manage.py sqlmigrate consumer 0001这个命令会输出一个sql,真正迁移时,实际执行的语句。migratepython manage.py migrate consumer真正创建数

2020-12-04 01:14:06 394

原创 01 Django 项目快速开始

1. 安装djangosource activate python-notebook # 进入python虚拟环境pip install django2. 创建项目django-admin startproject tmall3.django配置文件默认的配置文件,在django包中的 django/config/global_settings.py中项目的配置文件,在tmall/settings.py如果配置不同,项目自定义的会覆盖全局默认的配置文件想看不同,则使用pytho

2020-12-04 01:13:33 176

原创 Redis 应用02 简单限流/限制用户单位时间内的行为次数

简单限流回复帖子、点赞等操作,经常会提示你操作太快,也就是一个简单的限流问题。如一分钟用户最多回复5条,超过就会进行限制,用redis如何设计?实现思路使用zset数据结构, 每个用户的行为作为redis中的key比如 limit:tom:reply, 表示限制tom回复存储的数据为 value:sorce,value 可以使用时间戳 或者uuid唯一值sorce 使用发生行为的时间# 01# 每次操作行为,添加 value:sorce 使用zadd# 02# 删除1分钟之前

2020-12-01 00:18:57 739

原创 Redis 应用01 分布式锁

分布式锁在处理分布式应用并发的时候,常常会使用锁。为什么使用锁比如我们有个 num = 3, 应用对num操作去数据库取值取完值,在内存中,进行逻辑运算后重新赋值存回数据库当多个应用同时对num操作的时候比如 a和b 都对num进行操作取值 a1 b1赋值 b1 b3在数据库操作中,如果执行顺序是a1 a3 b1 b3 ,那num的值是正确的。如果执行顺序是 a1 b1 a3 b3 ,那么num值就会异常所以需要将 a1 b1 绑在一起执行,中间不能穿插其他操

2020-11-29 14:51:00 156 3

原创 Python避坑指南之字符串strip

strip 我们常常使用它去掉两边空白字符如str01.strip(" "), 这样使用没有什么问题但是像我,对它的理解就存在偏差之前的理解是a.strip("tom")去掉a 字符串 两边的 tom,开头结尾严格匹配。看下面的例子,可能就不符合我们的预期。a = "tot a totma"a.strip("toma")# Out: ' a '从现象来看,a.strip("toma")"toma",可以转化成一个集合,匹配开头结尾的时候,以第一个不在集合内的字符结束...

2020-11-24 23:05:53 351

huoxingche.py

火星车/火星漫游车 Python版编程题

2020-08-24

shell编写 批量测试防火墙端口开通 使用telnet

# telnet ip port 批量测试多个 ip|port 每次telnet 都要手动关闭 ctrl + ] 然后 ctrl + d 很麻烦 使用 (sleep 1;) | telnet $ip $port 就能1秒自动断开了

2020-03-20

Python-RQ.md

python RQ 轻量级 消息队列 ,依赖redis 中文文档,markdown版 简介: RQ (Redis Queue)是一个简单的Python库,用于队列任务并在后台与工人(worker)一起处理它们。它由Redis提供支持,旨在降低入门门槛。它可以轻松集成到您的Web堆栈中。

2019-12-13

Xshell+Xftp

Xshell+Xftp,绿色版,如果不能启动,请按照VC运行库。

2019-01-03

Postman网络请求工具.

windows版 postman,解压后,app中 postman.exe启动即可。

2018-12-31

空空如也

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

TA关注的人

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