自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tyltr的博客

前行者----溪涧岂能留得住,终归大海作波涛

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis设计与实现笔记 |目录

第一部分:数据结构与对象Redis设计与实现笔记(一) | 字符串Redis设计与实现笔记(二) | 链表结构Redis设计与实现笔记(三) | 字典第二部分:单机数据库的实现Redis设计与实现笔记(九) | 持久化 第三部分:多机数据库的实现Redis设计与实现笔记(十五) | 复制 第四部分:独立功能的实现 本系列博文是本人学习《Redis设计...

2018-11-01 00:04:35 671

原创 《go编程技巧》----绕过map的坑

go map的性能提升:- 分片锁- 内存泄漏分析- GC 内存回收

2023-04-09 20:41:33 728 1

原创 杂谈(第3篇) | 跳跃表

原文:https://tylitianrui.github.io/2018/05/21/%E8%B7%B3%E8%B7%83%E8%A1%A8/引子对一个有序数组进行二分查找,是程序员的一项基本功。二分查找的时间复查度O(logN),效率比较高。那么对于有序数组的近亲----有序链表,有没有一种类似二分查找的算法呢?当然有,那就是跳跃表。跳跃表是对有序链表进行快速查询的,平均时间复杂度...

2018-12-07 13:41:39 234

原创 杂谈(第2篇) | python中的单例模式

一言不和就飚代码,欢迎来黑。加锁是为了防止多线程下出现创建多个实例的情况。下面代码分别单利模式,和防止二次初始化的代码。下面的上锁采取上下文管理器的话,更优雅。 # -*-coding:utf-8-*-# AUTHOR:tyltr# TIME :2018/10/18import threadingclass Singleton(object): def __new__...

2018-11-15 10:14:24 248 1

原创 linux随笔(一) | 标准输入、输出、错误流

在工作开始初期,我曾经为了“ >/dev/null  2>&1 ”这一种纠结。今日又看到这种命令后缀,感触良多。如果你也有这种困惑,不妨来看看这篇小文章。在lunix中,有三种标准流:标准输入流、标准输出流、标准错误流。为了区分这三种流,linux分别为他们编号0,  1,2 进行区分。也就是说标准输入流的编号为0、标准输出流 为1 、标准错误流编号为2。在默认的情况下,l...

2018-11-14 12:23:45 3162

原创 网络安全随笔(一) | SYN Flood攻击

SYN攻击是Dos攻击之一,注意此处的Dos 指的是Denial of Service,简写DOS。新人千万别以为是dos操作系统。下面上干货。有关tcp的介绍,已经在 互联网协议解析(一) | TCP 与UDP  中进行了全面的介绍。如果有需要的话,还是可以看看的。我们再回顾一下 TCP的三次握手。在建立链接前,服务器已经开启,等待来自客户端(无论浏览器还是app等,此处把用户侧都称之为...

2018-11-06 13:28:27 538

原创 python进阶(一) | map、filter与reduce

1.1  map map(func,iterable)函数接收两个参数:一个是函数,一个是iterable( 列表,字符串 等 )作用:map将传入的函数依次作用于序列的每个元素,返回一个新的序列 ret = map(lambda x:x+1,[1,3,4,2])print ret就是把可迭代对象的每个元素,一次作为参数传递到函数中。最终将结果以列表的形式输出1.2   red...

2018-11-04 16:21:33 398

原创 Redis设计与实现笔记(九) | 持久化

redis是基于内存的数据库。总所周知,内存是RAM,数据断电即丢失。对于数据库来说,这种特性导致了数据持久性就无法保证。redis的持久化的机制解决这种问题,就是把数据库的数据保存到硬盘中,进行存储,避免数据丢失。redis有两种持久化的方式:RDB和 AOF一、RDBRDB是redis默认的持久化方式。将当前数据库的状态,以快照的形式保存在硬盘上。但如果开启了AOF的话,redis...

2018-11-04 11:58:57 216

原创 Redis设计与实现笔记(十五) | 复制

前面主要是在数据结构和单机服务器角度分析redis的底层实现。本篇讲解的是多服务器上的redis怎么实现数据复制的。在redis中只支持主从复制。复制是一个在数据库领域的基本的机制,每个数据库都有自己不同的实现方式。无论是RDB 还是NoSQL,会有复制这个概念。如MySQL中的复制,mongodb中的副本集等等。只要说到复制,就免不了谈俩个概念:数据一致性 和 读写分离,这两个概念也会在此博...

2018-11-01 00:27:26 260

原创 Redis设计与实现笔记(三) | 字典

字典(键值对、KV、映射都是一回事)在redis中有广泛应用:redis是Key-Value数据库,就是使用字典作为底层实现的,对数据库的增删改查都基于字典实现的。除此之外,redis的哈希键底层使用字典实现,一个哈希表中包含多个哈希节点,每个哈希节点就是一个kv结构,即字典。由于redis的数据库的kv结构太复杂了,暂且从哈希表说起3.1 哈希表哈希表所使用的字典定义在dict.h/...

2018-10-18 12:28:53 184

原创 杂谈(第1篇) | 进程、线程、协程的区别与联系

作为程序员,在面试的时候经常被问到:说说进程、线程、协程的区别。下面我们就总结一下。1.面试答案    1.1  进程与线程的区别总述:线程是进程的一个实体,一个进程至少有一个线程。1.根本区别;进程是操作系统资源分配的基本单位;线程程是任务调度和执行的基本单位2.地址空间:同一进程内的线程是共享本进程的地址空间的;而进程之间是相互独立的地址空间3.共享资源:同一进程内的...

2018-10-14 20:14:31 202

转载 MySQL索引背后的数据结构及算法原理

作者:张扬摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分...

2018-10-13 14:44:34 143

原创 互联网协议解析(一) | TCP 与UDP

作者有话说在很多面试中,有 很多面试官会问到:“你说说TCP UDP有什么区别呀?”,你会巴拉巴拉说一堆区别。有很多人是应试性的背诵,但不一定很系统地理解TCP/UDP。我一个同事曾这样形容过,就算面试的问题是“你说说龙肉 跟麒麟肉 有什么区别呀?”,也会有人巴拉巴拉说出1234条来。压根没见过,你扯什么犊子呀。那么,咱们就开始说说传输层协议  TCP和UDP吧!注:侧重讲解TCP1....

2018-10-12 23:32:41 690

原创 python性能分析(一) | timeit模块

在初学python的阶段,笔者曾使用装饰器来实现计算程序运行的时间。慢慢地才知道,python中有更方便的模块——timeit,在本文结束后,笔者会把timeit源代码附带,只有短短的一百多行,so easy,大家都应该能读懂源代码。那就直接看使用吧!基本用法import timeit# 待测试的函数def add(): return sum(range(111))...

2018-10-11 11:22:16 12940

原创 Redis设计与实现笔记(二) | 链表结构

没错,本篇我们要说一说链表在Redis中的应用。本打算写Redis中的列表,但想来想去觉得列表仅仅是Redis链表的一部分,并不能完全说明链表这一数据结构在Redis中的应用。那就说说数据结构链表吧。小伙伴们,开始啦!注:链表作为列表的底层实现是有条件的。当列表元素数量较多,或者是元素都是特别长的字符串时,才会使用链表作为列表的底层实现;当元素数量特别少,并且元素是特别短的字符串或者是特别小的...

2018-10-10 18:53:40 169

原创 Redis设计与实现笔记(一) | 字符串

目录1.1 与C字符串的区别1.2 SDS是什么鬼?1.3 内存分配的优化策略1.4 总结本书侧重于讲解redis的实现,对实践案例等讲解不多。Redis是开源的数据库,源代码  https://github.com/antirez/redis  官网 https://redis.io/ 有需要的小伙伴,可以去看看。总所周知,redis所支持的基本数据类型有五种:字符串、列...

2018-10-10 11:27:13 346

原创 Elasticsearch闲谈(一):Elasticsearch安装

万事开头难。在大神眼里,往往是一些鸡毛蒜皮的没有技术性的小事。但在初学者来说,却成了不可攀登的高峰。万事开头难,这就是为什么我单独把安装,拿出来说的原因。1.Elasticsearch 安装1.  确定您的计算机上是否安装了   jdk1.8 。如果没有安装的话,则安装;如果已经安装了,跳过此步即可。           查看jdk 版本的命令: java -version  ...

2018-10-10 07:09:06 188

原创 lintcode第一题:A + B 问题 说起python的数字类型

问题描述给出两个整数 aa 和 bb , 求他们的和。挑战显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?(不使用++等算数运算符) 正确答案__AUTHOR = "tyltr"__DATE = "18-2-28 下午9:27 """"001.给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符"""class Solu...

2018-10-10 07:06:36 718

原创 GO开发环境的搭建(MAC系统下)

开发者的第一步骚操作就是搭建开发环境:1.选择IDE2.开发包和环境变量的搭建     2.1  下载安装go工具包    2.2  设置GOROOT环境变量    2.3  设置GOPATH和GOBIN环境变量    2.4  重新加载环境变量配置说明:1 、2 步是可以并行的。在选择IDE时候,我使用的是LITEIDE,下载地址:https://www.gola...

2018-09-24 08:32:03 3080

原创 0001.ssh无密码登录,出现 ECDSA host key 与host ip 地址对应的key 不同

1.问题:已经设置了ssh无密码登录,可在使用过程中,可能会出现如下问题:tyltrinobugdeMacBook-Pro:~ tyltr$  ssh -p 26722 root@104.153.101.34 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ...

2018-09-22 07:30:14 1216

原创 0001.关于django中的Mixin以及原理解析

废话不讲,只唠干货!一、引子:在类视图中实现login_required 功能        在函数视图和类视图中实现login_required功能都臭了了大街了,细节不再描述。仅仅用类视图作为切入点。    1.定义LoginRequiredMixin实现校验的动作:class LoginRequiredMixin(object): """ 定义LoginRequiredMix...

2018-05-23 11:35:32 3524

Python学习手册(第4版)

Python学习手册(第4版) 适合Python开发者阅读,资料不错,供大家学习

2017-12-29

Python算法教程

本书用Python语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共11章。分别介绍了树、图、计数问题、归纳递归、遍历、分解合并、贪心算法、复杂依赖、Dijkstra算法、匹配切割问题以及困难问题及其稀释等内容。本书在每一章结束的时候均有练习题和参考资料,这为读者的自我检查以及进一步学习提供了较多的便利。在全书的最后,给出了练习题的提示,方便读者进行查漏补缺。

2017-12-29

xutils3.jar

xutils 最火的框架,一定要学习呀。具体的操作可以在网上百度,介绍也比较详细:注意学习4大模块。一定添加<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 切记切记!

2017-09-22

空空如也

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

TA关注的人

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