随笔分类 -  C语言

作为一门入门开发语言和重量级开发语言,有必要经常了解了解。
摘要:业务最初的应用场景中,我们也许使用单机redis就可以应付业务要求,但并非一直可行。 比如单机的读写能力问题,单机的可用性问题,单机的数据安全性问题。这些都是许多互联网应用经常会遇到的问题,也基本上都有一套理论去解决它,只是百花齐放。 哨兵是Redis中解决高可用问题的解决方案之一,我们就一起来看看 阅读全文
posted @ 2020-03-08 19:35 阿牛20 阅读(2490) 评论(0) 推荐(0) 编辑
摘要:谈到发布订阅模式,相信不会陌生,典型的观察者模式的实现。然而从表面来看,本地实现一个wait/notify通知、register/update调用, 实现一个远程mq服务, 还有本文说的 pub/sub, 其实道理都差不多。只是,同样的需求,针对不同的环境,实现上往往是有天壤之别的。 所以,我们就来 阅读全文
posted @ 2020-02-23 15:09 阿牛20 阅读(2443) 评论(0) 推荐(0) 编辑
摘要:前面几篇我们已经完全理解了redis的基本功能的实现了。 但单靠基本功能实现,往往还是称不上优秀的项目的。毕竟,我们现在面对的都是复杂的环境,高并发的场景,大数据量的可能。 简而言之,现在的系统一般都需要支持分布式部署,不存在单点问题,才算是一个合格的系统。 而redis作为一个存储系统,单点问题肯 阅读全文
posted @ 2020-02-18 11:26 阿牛20 阅读(1277) 评论(0) 推荐(1) 编辑
摘要:前面几篇文章,我们完全领略了redis的string,hash,list,set数据类型的实现方法,相信对redis已经不再神秘。 本篇我们将介绍redis的最后一种数据类型: zset 的相关实现。 本篇过后,我们对redis的各种基础功能,应该不会再有疑惑。有可能的话,我们后续将会对redis的 阅读全文
posted @ 2020-02-02 22:08 阿牛20 阅读(4274) 评论(0) 推荐(0) 编辑
摘要:上两篇我们讲了hash和list数据类型相关的主要实现方法,同时加上前面对框架服务和string相关的功能介绍,已揭开了大部分redis的实用面纱。 现在还剩下两种数据类型: set, zset. 本篇咱们继续来看redis中的数据类型的实现: set 相关操作实现。 研究过jdk的hashmap和 阅读全文
posted @ 2020-02-01 09:32 阿牛20 阅读(1519) 评论(0) 推荐(0) 编辑
摘要:上一篇讲了hash数据类型的相关实现方法,没有茅塞顿开也至少知道redis如何搞事情的了吧。 本篇咱们继续来看redis中的数据类型的实现: list 相关操作实现。 同样,我们以使用者的角度,开始理解list提供的功能,相应的数据结构承载,再到具体实现,以这样一个思路来理解redis之list。 阅读全文
posted @ 2020-01-29 13:40 阿牛20 阅读(3216) 评论(0) 推荐(1) 编辑
摘要:Redis作为nosql数据库,kv string型数据的支持是最基础的,但是如果仅有kv的操作,也不至于有redis的成功。(memcache就是个例子) Redis除了string, 还有hash,list,set,zset。 所以,我们就来看看hash的相关操作实现吧。 首先,我们从作用上理解 阅读全文
posted @ 2020-01-26 22:34 阿牛20 阅读(7801) 评论(0) 推荐(0) 编辑
摘要:上一篇文章从根本上理解了set/get的处理过程,相当于理解了 增、改、查的过程,现在就差一个删了。本篇我们来看一下删除过程。 对于客户端来说,删除操作无需区分何种数据类型,只管进行 del 操作即可。 零、删除命令 del 的定义 主要有两个: del/unlink, 差别是 unlink 速度会 阅读全文
posted @ 2020-01-23 21:24 阿牛20 阅读(3199) 评论(0) 推荐(0) 编辑
摘要:经过前两篇的介绍,我们对整个redis的动作流程已经有比较清晰的认识。 接下来就是到具体的命令处理方式的理解了,想来我们用这些工具的意义也是在此。虽然没有人觉得,一个set/get方法会有难度,但是我们毕竟不是很清楚,否则也不至于在谈到深处就懵逼了。 我觉得本文的一个重要意义就是: 让set/get 阅读全文
posted @ 2020-01-22 17:37 阿牛20 阅读(3149) 评论(0) 推荐(0) 编辑
摘要:上一篇文章,我们从框架层面,主要介绍了redis的启动过程,以及主要的命令处理流程逻辑。这些更多的都是些差不多的道理,而要细了解redis,则需要更细节的东西。 今天我们稍微内围的角度,来看看几个命令执行的重要方法,深入理解下redis的魅力所在。 首先,我们通过上一章知道,processComma 阅读全文
posted @ 2020-01-20 18:51 阿牛20 阅读(774) 评论(0) 推荐(0) 编辑
摘要:redis是用c语言的写的缓存服务器,有高性能和多种数据类型支持的特性,广受互联网公司喜爱。 我们要分析其启动过程,首先就要先找到其入口。 当然我们应该是要先分析 Makefile 文件,然后找到最终编译成的文件,然后再顺势找到C语言入口 main(); 这里咱们就不费那事了,一是这事很枯燥,二是我 阅读全文
posted @ 2020-01-13 16:19 阿牛20 阅读(1659) 评论(0) 推荐(2) 编辑
摘要:一般作为服务端的应用,必须要有相应的日志,否则问题怎么排查呢? 而日志怎么打印,也是一个技术活。不然java中也不会存在N多厂商争相提供日志框架了! 而日志滚动则往往也是刚需,毕竟没人能保证日志的量及可阅读性。 1. 日志滚动实现思路 日志滚动实现主要有两个大方向: 1. 让应用服务自行打印,打印到 阅读全文
posted @ 2019-02-01 14:44 阿牛20 阅读(3126) 评论(0) 推荐(2) 编辑
摘要:谈到阻塞,相信大家都不会陌生了。阻塞的应用场景真的多得不要不要的,比如 生产-消费模式,限流统计等等。什么 ArrayBlockingQueue, LinkedBlockingQueue, DelayQueue... 都是阻塞队列的实现啊,多简单! 阻塞,一般有两个特性很亮眼:1. 不耗cpu的等待 阅读全文
posted @ 2018-10-07 23:46 阿牛20 阅读(7286) 评论(0) 推荐(3) 编辑
摘要:之前有一篇文章写到,使用while true 加sleep进行消息监听操作。然而,使用while操作,其实是一种忙等状态,会让系统很忙。那有没有一种不忙的操作的方式呢? 应该是有的,本文讲些信号量方面的知识。让我看看他都能做什么。 我们有过多线程编程经验同学肯定都知道,同步锁(如java的sychr 阅读全文
posted @ 2017-12-27 06:18 阿牛20 阅读(2420) 评论(0) 推荐(0) 编辑
摘要:有一个愿分享的领导还是很棒的。 现在的负载均衡技术,可以说是满大街都是,但是我们基本都停留在了使用的阶段上,并没有真正深入去了解其核心。如果真的出现了问题,可能就很难知道是什么原因导致了,只能去google,百度了。 因此,了解一些核心的东西,还是不错的。 负载均衡大概流程就是,随时收集各服务器信息 阅读全文
posted @ 2017-12-14 10:09 阿牛20 阅读(1518) 评论(0) 推荐(0) 编辑
摘要:在学校时,可能大部分同学的入门语言都是c语言,但是往往或多或少的都会学习过汇编语言。然而那个时候的我们,觉得汇编真的是太难了,而且意义貌似也不大。 而如今,工作之后,发现一些道理,越是基础的,越能体现你的不凡。所以,我再次打开了这本书,来回味当年的苦涩。 先做些读后总结吧,这应该也是能快速体现获得多 阅读全文
posted @ 2017-12-10 19:25 阿牛20 阅读(12267) 评论(5) 推荐(3) 编辑

点击右上角即可分享
微信分享提示