- 博客(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
1009
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
3266
原创 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
2022
原创 什么是倒排索引
倒排索引正排索引?倒排索引 !正排索引举例子: 这句话比如存储id为 1949, text为我爱你中国存储格式可能如下. 查找的时候, 比如我们搜索中国那么肯定是便利所有的key_id,再去看里面value=中国的. 将所有匹配的数据取出.搜索引擎收录的文档是个天文数字,这样做无法满足实时返回结果的要求.keyvalue 1value 2value 3value 41949我爱你中国倒排索引还是上面的例子 1949:我爱你中国倒排索引, 就
2021-11-14 20:18:47
302
原创 优快云博客 不登录不能复制粘贴
说在最开头, 如果不好使,可能有效性过期了.步骤如下F12, 页面元素中搜索 content_views删除 id=“content_views”,直接改为 id=""最方便可以愉快的ctrl+cv了
2021-11-14 15:17:10
2802
原创 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
1026
原创 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
706
原创 查询建议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
257
原创 elasticsearch 自定义分析器
自定义分析器分析器analyzer主要有以下几个字段type 指定内置的分析器,custom可以忽略tokenizerchar_filterfilterposition_increment_gap 目前还没用到,不知道各个作用analyzer/analysis (分析器)文档document 如何转化为 倒排索引,一段text变成一个个term,这个过程叫做文本分析.Tokenizer(分词器)语干中提取词元(Token)Filter(过滤器)Character Fi
2021-04-14 00:08:42
381
原创 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
715
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
591
原创 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
322
原创 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
323
原创 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
301
原创 elasticsearch 分词器介绍和使用
分词器介绍和使用什么是分词器?就是将一段文本text,拆分成多个关键词keyword 的工具。常用分词器standard analyzersimple analyzerwhitespace analyzerstop analyzerlanguage analyzerpattern analyzerstandard analyzer# 标准分词器,默认的。# 大写变小写# 去掉了符号POST localhost:9200/_analyze{ "analyzer": "
2021-04-05 20:41:56
381
原创 简单搜索
简单搜索预置学习数据# 删除索引DELETE localhost:9200/nba# 创建索引,指定mappingPUT localhost:9200/nba{ "mappings": { "properties": { "name": { "type": "text" }, "team_name": { "type": "text"
2021-04-05 20:13:38
219
原创 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
278
原创 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
1223
原创 alias 索引别名操作
alias 索引别名查询别名# 查询指定索引别名curl -X GET "localhost:9200/nba/_alias"{ "nba" : { "aliases" : { } }}# 查询所有索引别名curl -X GET "localhost:9200/_alias"{ "nba" : { "aliases" : { } }, "cba" : { "aliases" : { } }}新增别名# 新增别名 nab ->
2021-04-01 00:19:04
453
原创 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
509
原创 服务注册与发现(python+etcd)
服务注册与发现简单的实现思路如下。服务端启动时,向中心注册, 写入服务器信息.停止时,服务器数据从中心删除。客户端启动时,可以获取所有可用服务器的信息。# 服务端向etcd注册 key value 如下# 客户端 获取以/job/demo开头的所有value,即可知道有哪些服务器可用。key1:/job/demo@127.0.0.1:9001 value1:127.0.0.1:9001key2:/job/demo@127.0.0.1:9002 value2:127.0.0.1:9
2021-03-11 00:50:03
2087
原创 消息队列的消息丢失、重复、积压
消息队列 MQ# 好处系统解耦流量控制,削峰填谷# 引入的问题系统解耦,分布式,带来了数据一致性问题,数据丢失与重复流量控制,也会导致消息堆积的问题。保证数据不丢失?# 消息生成阶段send -> ack确认响应,向消息队列存消息的时候,处理好响应结果和异常就可以保证发送成功了。# 消息存储阶段简单的就是交给中间件来保障消息存储不丢失但是我们也要理解原理,比如Broker副本,至少同步两个节点再返回ack确认响应。# 消息消费阶段获取消息后,先不要给Broker发
2021-03-09 23:52:56
346
1
原创 海量并发下的事物一致性
事物:一系列操作,要么都执行,要么都不执行。事物的一致性:分布式的情况下,比如下订单,有订单系统,商品库存,支付系统等。每一个子系统执行的操作,都是一个事物。所有子系统执行的操作,合起来还可以看成一个事物。强一致性:就是同步执行各个事物,所有都正确执行。最终一致性:可以通过消息队列完成,比如商品和支付先执行,通过消息队列发给订单系统,因为消息队列可以数据持久化,我们认为商品系统的事物一定会正确执行,这样最终的结果也是正确的,就是最终一致性。实现分布式的一致性:除了消.
2021-03-08 23:46:04
179
原创 海量存储下的哈希分片
哈希分片哈希(商品ID) % 存储节点数Hash后取模,比如我们有4个存储节点取模结构为0,则存在1号节点上。取模结构为1,则存在2号节点上。取模结构为2,则存在3号节点上。取模结构为3,则存在4号节点上。这就是最简单的哈希分片**优点:**实现了数据的均匀分布,且实现起来简单。**缺点:**扩展性差,比如我们节点变动,由4个增加到5个,会导致大规模数据迁移。如何保证扩展性呢?一致性Hash将存储节点和数据都进行哈希,映射到一个环上。存储节点一般根据IP进行HASH数据就使用唯
2021-03-07 22:52:00
401
原创 Serverless 无服务架构
serverless 无服务架构是一种软件架构思想和方法无需关注应用软件运行 的底层服务器状态,包括cpu、内存、磁盘、网络等,由底层的云计算平台动态提供。用户开发完应用后,部署到支持serverless的云计算平台上,平台负责部署应用到特定主机上当访问量高时,会自动增加应用部署实例。当访问量低时,云计算平台会自动卸载回收应用。# 腾讯云serverlesshttps://serverless.cloud.tencent.com/start?c=sls...
2021-02-12 17:35:03
267
2
原创 CAP理论
CAP理论是分布式计算领域的。C -> Consistency 一致性A -> Availability 可用性P -> Partition Tolerance 分区容错性# 一致性客户端一定可以访问到最新的数据。一致性细分又分为 强一致性、弱一致性、最终一致性。https://zhuanlan.zhihu.com/p/67949045# 可用性没有出现故障的节点,一定可以正常返回,且返回非超时,非系统性错误的响应。# 分区容错性当网络出现故障的时候,系统可
2021-02-06 22:03:00
112
原创 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
586
原创 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
231
原创 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
337
原创 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
118
原创 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
128
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
171
原创 链表:头插法实现逆序
#!/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
1121
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
837
原创 策略模式
"""策略模式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
105
原创 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
439
原创 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
222
原创 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
838
原创 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
188
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
422
shell编写 批量测试防火墙端口开通 使用telnet
2020-03-20
Python-RQ.md
2019-12-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人