读书笔记
矫首遐观
此刻就是最佳的开始时间
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
shell进阶之重定向,管道和过滤器,信号处理,sed和awk
这篇博文介绍shell进阶内容包括shell重定向,管道和过滤器,信号处理,sed和awk,有问题及时在本博客或个人博客留言。文章目录shell重定向输入输出标准输入标准输出标准错误重定向从文件输入从文本或字符串输入空文件创建/dev/null丢弃不需要的输出在单命令行进行标准输入输出重定向文件描述符使用exec命令指定用于输入的文件描述符指定用于输出的文件描述符关闭文件描述符打开用于读和写的文件描述符管道和过滤器管道过滤器信号处理子shell捕获trap语句移除捕获sed和awksed编辑器基础基本的原创 2020-08-30 00:49:02 · 1865 阅读 · 0 评论 -
shell中使用正则及脚本输入处理
这篇博文接前面两篇介绍shell中使用正则和shell脚本输入处理,有问题及时在本博文下或个人博客留言。文章目录shell中使用正则正则表达式类型元字符点运算符 .字符集否定字符集重复次数* 号+ 号? 号{} 号(...) 特征标群| 或运算符转码特殊字符锚点^ 号$号简写字符集零宽度断言(前后预查)?=... 正先行断言?!... 负先行断言?<= ... 正后发断言?<!... 负后发断言标志忽略大小写 (Case Insensitive)全局搜索 (Global search)多行修原创 2020-08-26 14:01:50 · 1214 阅读 · 0 评论 -
shell语法基础
本篇博文总结常用的shell编程语法,有问题可及时在本博客或个人博客下留言。文章目录shell编程基础shell脚本首行shell脚本注释shell脚本执行权限shell变量扩展基本的shell变量拓展间接参数拓展大小写修改变量名拓展字符串移除字符串搜索与替换求字符串长度子字符串扩展使用默认值指定默认值使用替代值Bash内部变量Bash中的位置参数和特殊参数位置参数特殊参数*特殊参数@特殊参数#特殊参数?特殊参数-特殊参数$特殊参数0特殊参数_declare指定变量类型declaredeclare -r原创 2020-08-21 21:48:10 · 1696 阅读 · 0 评论 -
常用shell命令
本篇博文总结常用的shell命令,比较基础,作为备忘待使用时查阅吧,有问题可及时在个人博客或优快云下留言。<@toc>shell基础快捷键:Ctrl+W :删除光标位置前单词Ctrl+U :清空行上下方向键:查看历史命令Tab :自动补全Ctrl+R:搜索先前使用的命令Ctrl+C :中止当前命令Ctrl+D/logout/exit : 退出登录shellESC+T : 调换光标前的两个单词cat /etc/shells : 查看系统中所有可用的shellecho原创 2020-08-18 15:23:41 · 378 阅读 · 0 评论 -
redis设计与实现读书笔记-多机数据库的实现
前言经过前两篇读书笔记的整理对redis设计与实现这本书梳理了下,当然我的梳理稍显粗糙,因为很多内容在书上介绍的比较清楚,而这本书就在我手头上,我在笔记中就不再赘述,有资源的最好读原书,看一本好书的时候最直观的感受就是这本书看的很顺畅,津津有味,对很多之前的疑惑有解谜的作用,而不是逼着自己今天看几页,明天看几页,而这本书就是让我感觉比较舒服的一本,接下来这篇重点介绍redis的主从复制,哨兵模式...原创 2020-03-19 22:15:23 · 363 阅读 · 0 评论 -
redis设计与实现读书笔记-单机数据库的实现
1. 数据库redis数据库的很多操作都是通过对键空间进行操作来实现的,比如添加,删除,更新,取值操作,比如用于清空整个数据库的FLUSHDB命令,用于返回数据库中随机键的RANDOMKEY,类似的命令还有EXISTS,RENAME,KEYS等.当使用redis命令对数据库进行读写时,服务器不仅对键空间执行指定的读写操作,还会执行一些额外的维护操作,包括:读取一个键后(包括读操作和写操作...原创 2020-03-18 22:47:37 · 245 阅读 · 0 评论 -
Redis设计与实现读书笔记-数据结构与对象
一简单动态字符串简单动态字符串(simple dynamic string,SDS)是redis的默认字符串表示,除此之外,SDS还被用做缓冲区(AOF模块中的AOF缓冲区和客户端状态中的输入缓冲区),AOF模块缓冲区指的是在做AOF备份的时候新增加的指令会缓冲到缓冲区,之后再发起部分同步到磁盘;客户端状态的输入缓冲区是指在服务端保存着客户端输入指令的一个缓冲区.SDS的表示结构如下:...原创 2020-03-03 00:18:33 · 283 阅读 · 0 评论 -
Linux命令行大全读书笔记
汇总:date:获取当前系统时间 cal:显示当前日历 df:查看磁盘可用空间: free:显示可用内存 pwd:查看当前工作目录 ls /usr :查看制定目录的结构 ls /home /usr指定查看多个目录 ls -l 以长格式显示 file:输出对文件的简短描述 Ctrl+A光标移动到行首,Ctrl+E光标移动到行尾,Ctrl+L清屏,与clear相同 vi 模式下...原创 2019-12-27 12:31:30 · 233 阅读 · 0 评论 -
Redis开发与运维读书笔记-第三章-实用功能介绍(二)
五.Bitmaps(位图)1 数据结构模型现代计算机用二进制(位)作为信息的基础单位,1个字节等于8位,例 如“big”字符串是由3个字节组成,但实际在计算机存储时将其用二进制表 示,“big”分别对应的ASCII码分别是98、105、103,对应的二进制分别是 01100010、01101001和01100111,如下图所示。Redis提供了Bitmaps这个“数据结构”可以实现...原创 2018-09-15 11:00:04 · 302 阅读 · 0 评论 -
Redis开发与运维读书笔记-第三章-实用功能介绍(一)
Redis提供的5种数据结构已经足够强大,但除此之外,Redis还提供了 诸如慢查询分析、功能强大的Redis Shell、Pipeline、事务与Lua脚本、 Bitmaps、HyperLogLog、发布订阅、GEO等附加功能,这些功能可以在某些场景发挥重要的作用,本章将介绍如下内容:·慢查询分析:通过慢查询分析,找到有问题的命令进行优化。·Redis Shell:功能强大的Redis Shel...原创 2018-09-14 22:45:21 · 994 阅读 · 0 评论 -
Redis开发与运维读书笔记-终章-Redis配置相关
本章对Redis的系统状态信息(info命令结果)和Redis的所有配置 (包括Standalone、Sentinel、Cluster三种模式)做一个全面的梳理,协助大家分析和解决日常开发和运维中遇到的问题主要内容如下:·info系统状态说明。·Standalone配置说明。·Sentinel配置说明。·Cluster配置说明。一.info系统状态说明1 命令说明info命令的使...原创 2018-09-19 23:20:28 · 437 阅读 · 0 评论 -
Redis开发与运维读书笔记-第二章-键管理(六)
按照单个键、遍历键、数据库管理三个维度对一些通用命令进行介绍。(一)单个键管理针对单个键的命令,前面已经介绍过一部分了,例如type、del、 object、exists、expire等,下面将介绍剩余的几个重要命令。1.键重命名(rename key newkey)例如现有一个键值对,键为python,值为jedis:127.0.0.1:6379> get python "j...原创 2018-09-14 22:45:02 · 352 阅读 · 0 评论 -
Redis开发与运维读书笔记-第十一章-缓存设计
缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题.1 缓存的收益和成本收益如下:·加速读写:因为缓存通常都是全内存的(例如Redis、Memcache),而存储层通常读写性能不够强悍(例如MySQL),通过缓存的使用可以有效地加速读写,优化用户体验。·降低后端负载:帮助后端减少访问量和复杂计算(例如很复杂的SQL语...原创 2018-09-19 22:00:16 · 404 阅读 · 0 评论 -
Redis开发与运维读书笔记-第二章-字符串数据类型介绍(二)
下面从redis几种数据结构的角度来进行理解:一.字符串字符串是redis数据类型的基础,首先键都是字符串类型.字符串类型的值实际可以是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能超过512MB。(一) 相关命令常用命令:(1)设置值(set key value [ex seconds] [...原创 2018-09-12 00:16:10 · 313 阅读 · 0 评论 -
Redis开发与运维读书笔记-第一章-Redis特性及使用场景
一.Redis特性:1.速度快:正常情况下,Redis执行命令的速度非常快,官方给出的数字是读写性 能可以达到10万/秒;Redis速度快的原因大致归结为以下几点:1)Redis的所有数据都是存放在内存中 2)Redis是用C语言实现的,一般来说C语言实现的程序“距离”操作系统更近,执行速度相对会更快 3)Redis使用了单线程架构,预防了多线程可能产生的竞争问题2.基于键值对的数据结...原创 2018-09-09 23:15:26 · 316 阅读 · 0 评论 -
Redis开发与运维读书笔记-第四章-Java客户端
Redis是用单线程来处理多个客户端的访问,因此作为Redis的开发和运 维人员需要了解Redis服务端和客户端的通信协议,以及主流编程语言的 Redis客户端使用方法,同时还需要了解客户端管理的相应API以及开发运维中可能遇到的问题.一.Java客户端JedisJava有很多优秀的Redis客户端(详见:http://redis.io/clients#java),这 里介绍使用较为广泛的...原创 2018-09-17 00:12:37 · 487 阅读 · 0 评论 -
Redis开发与运维读书笔记-第二章-哈希数据类型介绍(三)
二.哈希数据类型在Redis中,哈希类型是指键值本身又是一个键值对 结构,形如value={{field1,value1},...{fieldN,valueN}},Redis键值对和 哈希类型二者的关系可以用下图来表示: 哈希类型中的映射关系叫作field-value,注意这里的value是指field对应的值,不是键对应的值,请注意value在不同上下文的作用。(一)相关命令...原创 2018-09-12 22:12:28 · 376 阅读 · 2 评论 -
Redis开发与运维读书笔记-第二章-List数据类型介绍(四)
三.列表(LIST)数据类型列表(list)类型用来存储多个有序的字符串,一个列表最多可以存储个元素。在Redis中,可 以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列 表、获取指定索引下标的元素等.列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。列表类型有两个特点:第一、列表中的元素是有序的,这就意味着可以 通过索引下标获取某个...原创 2018-09-12 23:53:01 · 279 阅读 · 0 评论 -
Redis开发与运维读书笔记-第五章-持久化
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复.一.RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。1 触发机制手动触发采用bgsave命令:·bgsave命令:Redis进程执行fork操作创建子进程,RDB持久化过程由子 进程负责,...原创 2018-09-17 23:26:51 · 1248 阅读 · 0 评论 -
Redis开发与运维读书笔记-第六章-复制
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到 其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,哨兵和集群都是在复制的基础上实现高可用的。一.配置1 建立复制参与复制的Redis实例划分为主节点(master)和从节点(slave)。默认 情况下,Redis都是主节点...原创 2018-09-17 23:27:48 · 503 阅读 · 0 评论 -
Redis开发与运维读书笔记-第八章-内存管理
Redis主要通过控制内存上限和回收策略实现内存管理:一.内存管理1 设置内存上限Redis使用maxmemory参数限制最大可用内存。限制内存的目的主要有:·用于缓存场景,当超出内存上限maxmemory时使用LRU等删除策略释放空间。·防止所用内存超过服务器物理内存。需要注意,maxmemory限制的是Redis实际使用的内存量,也就是 used_memory统计项对应的内存...原创 2018-09-17 23:28:18 · 440 阅读 · 0 评论 -
Redis开发与运维读书笔记-第九章-哨兵
Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多 应用场景这种故障处理的方式是无法接受的。Redis从2.8开始正式提供了Redis Sentinel(哨兵)架构来解决这个问题.一.基本概念Redis Sentinel是Redis的高可用实现方案,在实际的生产环境中,对提高整个系统的高可用性是非常有帮助的....原创 2018-09-18 23:02:30 · 804 阅读 · 1 评论 -
Redis开发与运维读书笔记-第十章-集群
Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解 决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。一.数据分布1 数据分布理论分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每个节点负责整体数据的一个子集。 需要重点关注的是数据分区规...原创 2018-09-18 23:50:19 · 491 阅读 · 0 评论 -
Redis开发与运维读书笔记-第二章-集合(Set)及有序集合(Zset)数据类型介绍(五)
四.集合(Set)数据类型集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过 索引下标获取元素,一个集合最多可以存储个元素.Redis除了支持集合内的增删改查,同时还支持多个集合取交集、并集、差集.(一)相关命令下面将按照集合内和集合间两个维度对集合的常用命令进行介绍。1.集合内操作(1)添加元素(sad...原创 2018-09-13 22:26:43 · 501 阅读 · 0 评论 -
Redis开发与运维读书笔记-第二章-Redis全局命令及数据结构简介(一)
一.全局命令:1.查看所有键(keys *)2.键总数(dbsize)dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的 键总数变量,所以dbsize命令的时间复杂度是O(1)。而keys命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,线上环境禁止使用。 3.检查键是否存在(exists key)如果键存在返回1...原创 2018-09-11 22:30:34 · 320 阅读 · 0 评论
分享