redis源码分析之一——介绍

redis源码分析之一——介绍

一、Redis介绍

在NoSql数据库中,要说当红“炸子鸡”,Redis是当仁不让的。而且它还有一个比较特别之处,它是用纯c语言实现的。这和其它一些相关的程序使用Java、Go等当红语言完成,Redis确实是比较另类的。不过,这也恰恰体现了其高性能的一个有力的保障的原因。
Redis是基于内存型的数据库,虽然说其可以周期性的写入硬盘(这和Memcache有所不同),但其实在实际应用中,重点还是将其用做缓存使用的多。而这也正是其的优势,尺有所短,寸有所长。不谈应用场景而过分强调优势,这个最终就是一场混战,没有结果。Redis的整体设计简单实用。支持的数据结构也只有字符串、列表、哈希、集合和有序集合几种,普通的KV设计,一目了然。后来为了支持分布式增加了主从管理和共识。不支持Windows系统(官方)。同样为了简单,6.0版本前,其网络线程模型是基于单线程的,这样做的目的,使的开发和维护都变得简单方便。同时,也给人们一个提醒,不是说技术越复杂,才能实现更复杂的功能和更强大的性能。但是在6.0提供了多线程版本,不过正在迭代中。工程和技术既紧密联系,又显著不同。
Redis目前由VMware提供赞助的Pivotal公司进行维护。作者是Salvatore Sanfilippo,意大利人。

二、Redis的安装

1、源码安装

从官网下载相关版本的压缩文件,并安装相关的Gcc环境,然后编译安装即可。网上有很多资料,这里不做详述。

2、Dockers镜像安装

这种更简单。不作赘述。

3、直接命令安装

以Ubuntu为例:sudo apt-get install redis-server

三、应用

Redist的应用场景很多,但主要看来还是大数据的缓存应用上,其实好多其它应用都从这上面延展开来的,下面初步统计一下其实际的应用场景:
1、数据缓存
这个非常常见,比如在电商的网站中,客户的数据缓存,商品缓存等,目的是提高访问速度,减少对数据库的压力。
2、IM中的各种数据的加载
在聊天的程序中,客户的好友列表,聊天的过程中的数据,图片,音视频等。
3、任务队列
这个常见的就是支付宝的付款和12306排队了,但是其实他们不完全靠这个。但这不影响这个例子。
4、分布式的数据管理
比如一些排名和单点登录等。
5、数据的精细化管理
如数据的保存时长等。

其实你仔细分析,这五个除了最后一个外,其实都是从缓存中延展出去的。

四、总结

要想好好掌握Redis,深入分析其源码,并从中学习其设计理念和思想,非常重要。会使用Redis并不难,但为什么国内没人设计出来才需要反思。在学习编程的过程中,内存池,内存算法等大家都学得非常好,但却没有好的设计理念和思想,更无法在和实际的工程中产生类似于Redis这种优秀产品,才是值得深入反思。
古人都知道,师夷人之技以制夷。
诸君一起努力!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值