您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
c++码农是否需要花心思去学redis?
底层,内存,字符串c++码农是否需要花心思去学redis?
发布时间:2019-02-08加入收藏来源:互联网点击:
问题补充: 作为一个底层的c++码农,平时项目中也没用到redis,redis值不值得花精力研究一番和学习?求前辈指点一二
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
redis是用纯C写的一个缓存数据库实现吧,如果你是要用redis,那其实和你本身会不会C++也没有关系。
现多的业务层开发都在用redis,包括JAVA,PHP等,这是用来放在实体数据库前当缓存提高性能用的,和你用什么语言不相关。
如果你们的业务对redis要求很高,需要用到一个很大的集群或是性能要求,那建议看一下,你不深入了解,其实很难用好,网上人云亦云的东西很多,但不少是有坑的,并不能当成生产环境的经验。
回答于 2019-09-11 08:43:50
作为从事底层C++开发的程序员,我认为很有必要去学习一下redis的源码。redis是一种非常高效的内存数据库。几乎是把计算机性能压榨到了极限。而底层C++程序员大部分都是从事的高性能开发,要大量与内存打交道。这区别于应用级开发,他们往往更喜欢用现成的数据库和重量级框架,更侧重业务逻辑而不是底层实现。后者没有必要学习redis的源码,会使用就可以了。而C++程序员学习redis源码,也不是主要目的如何用好redis,而是如何借鉴它先进的设计思想。
redis的代码写得非常优秀,代码量也不是特别大。内存分配、动态字符串、列表、集合、字典等的设计都非常巧妙。真的就是数据结构和算法的成功实践范本!
光是动态字符串的设计,就很值得借鉴。涉及到内存预先分配,内存重复利用,32字节以下的字符串如何嵌入(栈上分配)。它的字符串不是以\0结尾,也不是char[255]或char*这么简单粗暴。但是效率却比传统的方式更高效。
如果内存部分看完了,有时间,还可以了解一下它简洁的网络通信和集群功能,都很值得学习。这些思想,都可以或多或少地用到自己的底层代码上面。
redis目前没有Windows的官方实现,说明它为了追求简洁高效,并没有考虑跨平台。
要自己去从头摸索redis的源码,还是比较有难度的,建议找一些书籍或博客去先了解一下大致脉络。
上一篇:有哪些好用的股票指标?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |