自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leon的博客

但行好事,莫问前程

原创 Redis过期策略以及内存淘汰机制

如果你的 Redis 只能存10G数据,你写了12G,那么 Redis 会怎么淘汰那2G数据呢? 过期键删除策略 我们都知道,删除键的目的,就是释放内存占用。那么,当一个键过期了,Redis 什么时候会去删除她呢? 定时删除 设置键的过期时间时,创建一个 Timer...

2018-06-21 18:28:59 16684 4

原创 tornado 消费队列并配合 superviosr 优雅重启

当你用tornado 作为一个消费队列的实例,如果tornado 异常了,如何在消费队列中重启tornado实例,并继续下一个消费?

2020-06-20 10:07:58 30 0

原创 用 scroll 和 bulk 拉取和上传千万级 elastic 索引

最近遇到个需求,索引迁移,本来应该用es的reindex,不过由于业务限制等原因,没法使用,使用了 scroll 和 bulk 完成了迁移,记录代码 scroll 拉取到csv文件 from elasticsearch import Elasticsearch from elasticsearch...

2020-06-13 16:38:41 64 0

原创 nginx 反向代理的缓存问题

http { proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=my_zone:10m inactive=60s max_size=5g;#访问时间,过期就会删除 } #es判例的 location ~ /es/pre...

2020-06-13 16:03:31 61 0

原创 Elastic 分片设计及管理

分片设计 Es分片水平扩展/rebalancing 创建索引时,为索引设计的分片数,会自动分布在集群的节点上,当节点增加时,es也会自动进行分片的移动,这叫做 shard rebalancing 多分片的好处: 数据写入可以分散到多个机器上 查询可以并行进行 增加机器,可以no do...

2020-06-11 15:17:46 37 0

原创 Mongo 副本集创建

1修改配置文件 sudo vim /usr/local/mongodb4.2/bin/mongodb.conf logpath=/Users/sw/mongodata/logs/mongodb.log fork=true logappend=true dbpath=/Users/sw/mongo...

2020-06-10 10:22:29 35 0

原创 用wt文件恢复mongodb

安装 wt 工具 wget http://source.wiredtiger.com/releases/wiredtiger-3.0.0.tar.bz2 tar xvf wiredtiger-3.0.0.tar.bz2 cd wiredtiger-3.0.0 sudo yum install...

2020-06-10 10:17:43 121 0

原创 screen + rc.local 实现开机自启动多个窗口命令

话不多说,上代码 开机启动就不多赘述了,自行百度,这篇博客主要说的是,screen 在开启自启动脚本中的用法。直接写 screen -S xxxx 是会报错,无法自启动的。 下面附上一个启动多个screen 任务的脚本 ,直接用就行 #!/bin/sh #chkconfig: 2345 80 9...

2020-05-21 16:23:40 27 0

原创 pika python rabbitmq 优先级队列

话不多说,直接上代码。 python3.6 pika 实现rabbitmq 优先级队列 Send import pika import sys import time # 远程rabbitmq服务的配置信息 username = '用户名' # 指定远程rabbit...

2020-05-21 16:17:22 65 0

原创 倒排索引增量更新如何被实时检索?

正排索引与倒排索引 索引的目的: 使根据 key 查询 value 的速度变快 正排索引:Forward Index ,以一个对象的唯一ID 为Key 的哈希索引结构 倒排索引:Inverted Index 根据具体内容,反过来查询文档 key ,根据内容(字典),查询对应的文档列表(记录...

2020-05-14 11:26:45 119 0

原创 解析redis bitmap数据

import redis import binascii #连接redis pool = redis.ConnectionPool(host='122.112.163.26', port=6379, db=0, password='fb0401') r =...

2020-04-25 17:12:15 49 0

原创 Redis源码4.0阅读日记 (2)字典dict

dict.h 哈希表节点 typedef struct dictEntry { void *key; //键 union { void *val; uint64_t u64; int64_t s64; double ...

2019-12-26 10:44:10 50 0

原创 Redis源码4.0阅读日记 (1)内存管理 zmalloc

Redis源码4.0阅读 之 内存管理 zmalloc 本文分析了 Redis 的 zmalloc.c 和 zmalloc.h 代码 全文注释,分析实现

2019-12-11 17:31:11 123 0

原创 191. 位1的个数

题目描述 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000000000000000...

2019-12-09 09:07:18 71 0

原创 Python3 列表解析和迭代器的内存占用过程分析

列表解析表达式 先来看一个例子~ Leetcode 171 题 解法很简单: sum = 0 for i in range(0, len(s): sum += 26 ** (len(s) - 1 - i) * (ord(s[i]) - ord("...

2019-12-05 16:22:12 291 0

原创 56. 合并区间 python3

给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4...

2019-12-03 14:14:52 84 0

原创 文件名路径有/ 导致目录不存在的问题 No such file or directory

在目录中存在/ 时,读取或写入就会报错 FileNotFoundError: [Errno 2] No such file or directory 解决办法如下: title = "ELK CI/CD 部署实践2017-11-06 by leon.pdf" #替换以下的 ...

2019-11-29 15:12:54 756 0

原创 Python3 设置 profile 环境变量

服务器环境 centos7.3 ,由于服务器上profile设置了代理 代理仅限访问 A 网站,这时,我需要在我的 Python 脚本中访问 B 网站 ,就会因为代理的原因 无法访问B网站。 总不能每次都运行脚本前去 修改 profile 文件 删除代理吧? 在python中删除...

2019-11-21 10:12:26 267 0

原创 一篇最全整理,教会你离线部署Python3和pip包

本文介绍离线安装(无网模式)的坑点 1 重新安装 openssl 先把系统自带的这些,卸载/删除 #编译安装openssl http://www.openssl.org/source/ cd /openssl-1.1.1 sudo ./config shared --prefix=/usr/...

2019-11-10 10:08:14 190 0

原创 Python 设置 IP 代理 访问网页 ( 用户名密码验证代理 )

需求如下: 待爬取的页面 想爬取的部分 查看源码,在Js中有返回 正常访问时候,使用Firefox代理插件 FoxyProxy 设置代理才能访问到的。 本来想用 Selinum打开 FireFox,不过卡在了插件,和插件自动 填充账号密码这块儿,后来发现直接用 urlib...

2019-10-24 09:26:22 713 0

转载 org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apach

之所以转载这篇文章是因为这个问题, 困扰了我两天的时间,而且百度出来的结果全都是 help--Install New Software ,没有一个可以用的,在我绝望的时候,找到了解决办法。 有时候创建maven项目的时候会出错 POM org.apache.maven.archive...

2019-09-29 09:48:17 42 0

原创 PySpark DataFrame 操作

SQl 获取 DF 操作 # coding:utf-8 from pyspark.sql import SparkSession from pyspark.sql.utils import AnalysisException if __name__ == '__main__'...

2019-09-25 10:14:03 115 0

原创 PySpark Rdd操作

from pyspark import SparkContext, SparkConf conf = SparkConf().setAppName("rdd_trans") sc = SparkContext(conf=conf) print(sc.version...

2019-09-23 15:22:39 84 0

原创 Hive常用表操作语句

常用操作 简单表 # 创建 create table erp_leon_stu_simple (name string, age int) # 查看表存储位置 desc formatted erp_leon_stu_simple 2. 外部表 # desc formatted erp...

2019-09-19 15:43:40 27 0

原创 Python中的GIL和异步Asyncio、Futures

一 、基本概念 以下概念都是在 Python 环境下 Sync 同步编程 Async 异步 ,是指在外观上看来程序不会等待,而是找出可执行的操作/任务/线程 继续执行 Asyncio 单个主线程 多个不同的任务 task ,这些 future 对象 被 event loop 对象控制,就好像...

2019-08-14 11:05:14 211 0

原创 Python 中的 迭代器 和 生成器

生成器验证数学表达式 """ 验证 (1 + 2 + 3 + 4 + 5 + ...) ^ 2 = 1^3 + 2^3 + 3^3 + 4^3 + 5^3 + ... # 分别用生成器 生成 左边 1次方 和右边 3次方 的sum """...

2019-08-02 08:58:37 52 0

原创 稍微不那么简单,看看Python 中的 List 和 Tuple

简单看看 Python 中的 List 和 Tuple List l = [] print(l,l.__sizeof__()) # l 初始化40字节 l.append(1) # 增加一个元素后,(注意,这里是append之后,)预分配了 4个 元素的32 个字节 print(l,l...

2019-07-22 14:45:06 61 0

原创 简单看看 Python 中的 List 和 Tuple

1. 为什么 list 比 tuple 要多16个字节? l = [1, 2, 3] t = (1, 2, 3) print(l.__sizeof__()) # 64 # 列表是动态的,存储指针,指向对应的元素, int 8字节 # 动态存储 List 还存储了 已分配长度大小 8字节...

2019-07-09 15:50:24 102 0

原创 MongoDB占用内存定位和释放

问题:芒果占 Swap 占用超过50% 1 Linux Swap 内存交换空间 当 Linux 内存空间紧张的时候,Linux 通过直接内存回收 和 定期扫描的方式,来释放文件页 和 匿名页,以便把内存分配给更需要的进程使用。 文件页回收即 清空,或者脏数据写盘,释放 匿名页回收,即 ...

2019-07-09 10:03:00 1913 0

原创 LeetCode 13. 罗马数字转整数

题目:https://leetcode-cn.com/problems/roman-to-integer/ AC1 class Solution(object): def romanToInt(self, s): """ :ty...

2019-05-29 20:35:32 61 0

原创 Python GUI 编程,看完这一篇你就会了

easygui Python 的 GUI 编程,这里用的是 easygui ,完成一些简单的图形化界面开发。 基本组件: __all__ = ['buttonbox', 'diropenbox', 'fi...

2019-05-21 09:59:03 4175 1

原创 leetcode 7. 整数反转 python3

题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范...

2019-03-28 08:44:57 104 0

原创 Redis二进制数组Bitmap

好久没有更新了,之前公司在做 关注/粉丝 这块儿缓存的时候,我选择的就是 Bitmap ,那时是我第一次见识到这种数据数组形式,用到的有 SETBIT , GETBIT , BITCOUNT ,命令如何使用就不说了,今天来仔细看看这三个命令的实现和原理。 选用 bitmap 的考量: 位数组的实...

2019-03-20 20:13:50 983 0

原创 LeetCode 74. 搜索二维矩阵

AC1 AC1总是最暴力的 O(n2) class Solution: def searchMatrix(self, matrix, target): for i in matrix: for j in i: if...

2019-03-04 16:43:51 104 0

原创 Mysql 事务隔离级别整理

事务 就是一组 数据库操作,要么一起成功,如果有一环失败了,则整个动作都会回滚。事务是在引擎层实现的,Mysql支持多引擎,有的引擎不支持事务,MyISAM 不支持事务,InnDB支持事务 。 隔离级别 隔离级别和脏读等关系,就不展开了,直接一张图。 查看事务隔离级别: # version &...

2019-02-28 10:54:17 91 0

原创 LeetCode .146. LRU缓存机制-详解

problem 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(ke...

2019-02-25 13:13:21 262 0

原创 Mysql 是如何保证主从一致的?

主从一致性的原理 以 A:M-B:S 结构为例子: A 的更新流程 A在接受一个来自客户端的更新请求之后,首先在undolog 内存中写入,然后存入硬盘,在redolog恢复日志 prepare 阶段完成之后,写入 binlog ,最后再 commit 整个 prepare ,完成 A这边的一套...

2019-02-21 16:25:21 2640 0

原创 LeetCode .120. 三角形最小路径和 - 详解

题目描述 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 说明:...

2019-02-19 11:13:24 87 0

原创 Leetcode 260. 只出现一次的数字 III -详解

题目 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。 示例 : 输入: [1,2,1,3,2,5] 输出: [3,5] 注意: 结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。 你的算法应该具有线性时间复...

2019-02-15 11:03:34 115 1

原创 137. 只出现一次的数字 II -详解

题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,...

2019-02-14 14:45:36 273 0

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