-
Redis基本类型及其数据结构
所属栏目:[优化] 日期:2019-09-04 热度:180
以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。 redisObject Redis的key是顶层模型,它的value是扁平化[详细]
-
MySQL 进行 Docker 容器化之体验与感悟
所属栏目:[优化] 日期:2019-09-04 热度:117
原则 Docker 的使用原则是所有容器化的应用程序都应该是无状态的 ,即容器内部只跑业务逻辑,容器应用的所有配置文件、日志文件和持久化数据 都应该挂载到宿主机文件系统,不应该存储在容器内部,以免容器被误删或自身出现问题导致数据丢失。 MySQL 容器化[详细]
-
用Cython加速Python代码,速度溜到飞起
所属栏目:[优化] 日期:2019-09-03 热度:150
介绍 如果你曾用Python编写代码,那么你可能花了更多的时间等待某些代码块的执行,而不是你想要的。虽然有一些方法可以使您的代码更有效,但它很可能仍然比C代码慢。这主要归结为Python是一种动态编程语言,并将许多东西移动到C语言编译期间处理的运行时。[详细]
-
详解JVM内存布局及GC原理,值得收藏
所属栏目:[优化] 日期:2019-09-03 热度:66
java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大致分为6个(逻辑)区域: 这6块区域按是否被线程共享,可[详细]
-
Docker命令行入门大全:这18条,你不得不知
所属栏目:[优化] 日期:2019-09-03 热度:154
Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。 前 言 Docker镜像是由Dockerfile和一些必要的依赖项组成的,Docker容器是动态的Docker镜像。要使用Docker命令[详细]
-
Linux运维会被淘汰吗?
所属栏目:[优化] 日期:2019-09-03 热度:72
1. 前言 本文主要探讨Linux运维技术人员会被淘汰吗? 社会上最近会出现这样的一些想法和声音。源于现在流行自动化运维技术,比如以下的3种自动化运维工具。 2. 自动化运维工具取代一部分人力 2.1 自动化运维之Devops Devops的口号喊了很多年,但一直到今年[详细]
-
基于分布式系统的7种唯一ID实现方案,值得收藏
所属栏目:[优化] 日期:2019-09-03 热度:172
概述 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。 分布式ID的特性 唯一性:确保生成的ID是全网唯一的。 有序[详细]
-
Python开发必备:如何建立一个优秀的项目工程环境
所属栏目:[优化] 日期:2019-09-03 热度:124
在程序开发时候一套好的开发环境和工具栈,可以帮我们极大的提高开发的效率,避免把大量时间浪费在周边琐事上。本文以Python为例,教大家如何快速打造优秀的Python项目开发环境:内容涵盖了模块依赖管理、代码风格管理、调试测试管理和Git版本管理,使用gi[详细]
-
如何在 Linux 上重命名一组文件
所属栏目:[优化] 日期:2019-09-03 热度:195
几十年来,Linux 用户一直使用 mv 命令重命名文件。它很简单,并且能做到你要做的。但有时你需要重命名一大组文件。在这种情况下,rename 命令可以使这个任务更容易。它只需要一些正则表达式的技巧。 与 mv 命令不同,rename 不允许你简单地指定旧名称和新[详细]
-
一文看懂数据结构中的树 值得收藏
所属栏目:[优化] 日期:2019-09-03 热度:138
通常在开始学编程的时候,你会接触一些常用数据结构。 到最后一般会学到哈希表。对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表、队列和栈的各种知识。这些统称为线性数据结构,因为依逻辑次序从头排到尾。 当你开始进入下一[详细]
-
如何在磁盘上查找 MySQL 表的大小
所属栏目:[优化] 日期:2019-09-03 热度:190
我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 这个看似简单的问题实际上在 MySQL 中非常复杂。MySQL 支持许多存储引擎(其中一些根本不在磁盘上存储数据), 不同的存储数据格[详细]
-
细说Python的Lambda函数用法,建议收藏
所属栏目:[优化] 日期:2019-09-03 热度:120
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。 1.为什么要用lambda函数? 先举一个例子:将一个列表里的每个元素都平方。 先用def[详细]
-
2019年超好用的开源命令行工具,值得一看
所属栏目:[优化] 日期:2019-09-02 热度:75
1. 前言 Linux在桌面上取得了很大的进步。 然而,Linux和Unix之类的操作系统的真正精髓在于命令行工具。 本博客站选择了2019年优秀的开源终端应用程序。 以下介绍的大多数工具都已经集成在主要 Linux 发行版上,并且可以安装在BSD类或 Apple OS X 系统上。[详细]
-
最全 14 张思维导图:教你构建 Python 编程的核心知识体系!
所属栏目:[优化] 日期:2019-09-02 热度:143
本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库)。 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件循环,文件对象,错误异常,函数,模块,面向对象编程; 结合这些思维导图[详细]
-
每秒30W次的点赞业务,怎么优化?
所属栏目:[优化] 日期:2019-09-02 热度:124
继续答星球水友提问,30WQPS的点赞计数业务,如何设计? 可以看到,这个业务的特点是: 吞吐量超高; 能够接受一定数据不一致; 画外音:计数有微小不准确,不是大问题。 先用最朴素的思想,只考虑点赞计数,可以怎么做?有几点是最容易想到的: 肯定不能用数[详细]
-
资深架构师技术分享:一文详解分布式系统的分区
所属栏目:[优化] 日期:2019-09-02 热度:183
数据的复制是冗余的过程,冗余会增加可用性,并且可以有效均衡读取负载。而数据的分区是一个整体转换为局部的过程,这种拆解就像你拥有大量图书,但你的书架放不下,所以需要再加几个书架存储是一个道理。 将整体拆分,局部存储在多个较小空间内。这种思想映射到[详细]
-
都在这里,值得收藏!Python语言自带的数据结构有哪些?
所属栏目:[优化] 日期:2019-09-02 热度:114
Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使其编写非常方便简单,所以广受大家的欢迎。 现如今,Python已经广泛的应用于数据分析、数据挖掘、机器学习等众多科[详细]
-
在你崩溃之前,这8种做法会让React应用程序先崩溃
所属栏目:[优化] 日期:2019-09-02 热度:137
React库的优势非常明显:创建复杂的交互用户界面非常简单。最大的特点是可以在不破坏其他组件的情况下,将组件直接组合在一起。即使是Facebook、Instagram、Pinterest这样的社交媒体巨头也大量使用React,同时通过谷歌Maps这样的大型API创造无缝的用户体验[详细]
-
处理亿级数据的“定时任务”,如何缩短执行时间?
所属栏目:[优化] 日期:2019-09-02 热度:78
继续答水友提问。 问题抽象: 用户会员系统; 用户会有分数流水,每个月要做一次分数统计,对不同分数等级的会员做不同业务处理; 数据假设: 假设用户在100w级别; 假设用户日均1条流水,也就是说日增流水数据量在100W级别,月新增流水在3kW级别,3个月流水[详细]
-
Kali Linux 下10个常用渗透工具
所属栏目:[优化] 日期:2019-09-02 热度:140
1、Nmap Nmap Nmap(即 网络映射器)是 Kali Linux 上信息收集工具之一。换句话说,它可以获取有关主机的信息:其 IP 地址、操作系统检测以及网络安全的详细信息(如开放的端口数量及其含义)。 它还提供防火墙规避和欺骗功能。 2、Lynis Lynis Lynis 是安全审[详细]
-
终于学会Python?别闹了,本文中的东西你搞懂了吗?
所属栏目:[优化] 日期:2019-09-01 热度:64
作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包。但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中,我们将探讨以下话题: 常规导入(regular imports) 使用from语句导入 相对[详细]
-
Go语言中执行命令的几种方式
所属栏目:[优化] 日期:2019-09-01 热度:195
go语言用来执行一个系统的命令相对python来说还是有点复杂的,执行命令是一个非常常见的需求,如调用一个系统命令,启一个exe等,这里分为几种情况,之后统一总结一下。 只执行命令,不要输出结果 执行命令并且要获取到输出结果 阻塞和异步的执行 以下以pi[详细]
-
Java架构之Redis系列:通过文章点赞排名案例学习Sortedset命令
所属栏目:[优化] 日期:2019-09-01 热度:150
前言 这一篇文章将讲述Redis中的sortedset类型命令,同样也是通过demo来讲述,其他部分这里就不在赘述了。 案例 demo功能是文章点赞排名等等,整个demo的大致页面如下。 准备工作 首先定义一个存储文章的key privatestaticfinalStringZSET_KEY=articleList[详细]
-
十大经典排序算法总结(含Java代码实现)
所属栏目:[优化] 日期:2019-09-01 热度:145
最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在桶排序算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的[详细]
-
IBM 开源 Power 指令集架构,中国成大赢家?
所属栏目:[优化] 日期:2019-09-01 热度:160
上周 IBM 宣布开源 Power 指令集架构,同时OpenPOWER 基金会加入了 Linux 基金会运营,这一消息引起了许多讨论,有人看好 Power 接下来的发展,有人则觉得它的时代早已逝去。这是关于 Power 自身的看法,而由于 Power 的开源,将会引发周边生态怎样的变数[详细]
