为你推荐

Redis 淘汰策略解读

   Redis在生产环境中,采用配置参数maxmemory的方式来限制内存的大小。当实际存储内存超过maxmemory参数值时,开发者可以通过Redis内存淘汰策略,来决定如何腾出新空间继续支持读写工作。工作情况    首先,客户端会发起需要更多内...
代码星球·2021-01-09

proto3 学习

 由于实习项目中用的是gRPC,在学习gRPC之前,我们需要先学习一下proto语法protoBuffer简单介绍 protocolbuffer是一个语言无关,平台无关,可扩展的结构化数据序列化方案,用于协议通信,数据存储和其它更多用途(这个部分在前面序列化章节的博客中说过);它像xml,但是更小[...
代码星球·2021-01-09

Redis 列表

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含232 -1个元素(4294967295,每个列表超过40亿个元素)。注:之所以说Redis列表是字符串列表,是因为“字符串对象是Redis五种类型的对象中唯一一种会被其他四种对象嵌...
代码星球·2021-01-09

Redis 安装与配置

 今天我们就开始学习Redis缓存数据库,本篇主要了解Redis的安装和配置。Ubuntu系统安装Redis  博主选用的系统是阿里云主机的Ubuntu16.40系统,所以安装起来是非常方便的,安装命令如下:$sudoapt-getupdate$sudoapt-getinstallredis-server  ...
代码星球·2021-01-09

Golang---sort包

  Go语言标准库sort包中实现了几种基本的排序算法:插入排序、快速排序和堆排序,但是在使用sort包进行排序时无需具体考虑使用哪种排序方式,因为该方法会根据传入的排序的数据量来进行自动选择合适的排序算法。funcinsertionSort(dataInterface,a,bint)//插入排序funcheapSor...
代码星球·2021-01-09

Golang---序列化和反序列化

  我们的数据对象要在网络中传输或保存到文件,就需要对其编码和解码动作,目前存在很多编码格式:json,XML,Gob,GoogleProtocolBuffer等,Go语言当然也支持所有这些编码格式。  序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状...
代码星球·2021-01-09

Golang---BASE64编码原理

  Base64是一种基于64个可打印字符来表示二进制数据的表示方法。在Base64中可打印字符包括字母A-Z,a-z,数字0-9,这样共有62个字符,另外两个可打印符号在不同的编码系统中不同。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。比如:3个字节(ASCII表示)有24个比特,可由4个Base...
代码星球·2021-01-09

Nginx系列p5:进程管理(信号)

 通过上图我们可以看到:信号与命令行的关系,下面我们来简单总结一下上述命令的作用:CHLD:当子进程终止的时候,会向父进程发送CHLD信号,这样,如果子进程由于某些模块出现了Bug,导致子进程意外终止的情况时,那么父进程可以立刻通过CHLD信号发现这样一个事件,然后重新拉起进程,从而达到配置文件中所指定的wo...

Nginx系列p4:进程结构

Nginx有两种进程结构:单进程结构,多进程结构。本篇文章我们主要说多进程结构。问:那为什么Nginx采用多进程结构,而不是多线程结构呢?答:这是因为Nginx最核心的目的就是要保证高可用性和高可靠性,当Nginx采用了多线程结构的时候,因为多个线程是共享同一个地址空间的,所以当一个第三方模块引发了一个地址空间导致的段...

one_day_one_linuxCmd---crontab 命令

  《坚持每天学习一个linux命令,今天我们来学习tar命令》摘要:crond是linux下用来周期性的执行某种任务或等待处理事件的一个守护进程,周期执行的任务一般由cron这个守护进程来处理,可通过命令ps-ef|grepcron命令来查看后台是否有相关进程。cron的配置文件称为“crontab”,是cronta...

Nginx系列p3:实现一个具有缓存功能的反向代理服务器

  今天我们利用OpenResty来实现一个反向代理服务器 step1:首先下载安装OpenResty#下载安装OpenResty#默认安装在/usr/local目录下,可在编译时指定安装目录#可在编译时加入更多第三方模块,以支持更多的功能$wgethttps://openresty.org/download...

Nginx系列p2:重载,热部署,日志分割

  今天我们来学习nginx的重载、热部署、日志分割功能重载:当我们需要修改配置文件中的一些值,我们可以直接修改该配置文件,然后重新启动nginx服务,就可以实现在nginx不停止服务的情况下,使用了我们最新修改过的配置文件。重载example:step1:#打开配置文件,设置配置文件中的tcp_nopush选项为开启...

Nginx系列p1:安装

   学习新的知识都要从搭建环境开始,今天我们就来学习搭建一个Nginx环境。 环境:Ubuntu16.04STL       Nginx1.16.1Stableversion 前言:当然可以通过ap...
代码星球·2021-01-09

dockerfile---apt-get install vim 时 Unable to locate package vim

  在学习dockerfile的时候,发现编写的Dockerfile中的apt-getinstall命令无法找到要安装的包,所以记录一下这次发生的错误。 环境:宿主机:windows10上安装VMware虚拟化软件    VMwareworkstation15pro  ...

one_day_one_linuxCmd---光标快捷操作

  《坚持每天学习一个linux命令,今天我们来学习切换光标的常用命令》  摘要:最近经常使用xshell软件来远程连接各种机器,在bin/bash下输入各种命令,因为都是一些非常熟悉的操作,每次都用鼠标操作,觉得效率非常低,今天就来总结一下在Terminal下快速移动光标的常用命令。 1,移动光标命令:#移...