设为首页 收藏本站
查看: 1021|回复: 0

[经验分享] Nosql Redis学习

[复制链接]

尚未签到

发表于 2016-12-17 11:55:08 | 显示全部楼层 |阅读模式
Redis: A persistent key-value database with built-in net interface written in ANSI-C for Posix systems.Redis是现在很火的高性能KV内存数据库,支持丰富的数据类型,支持持久化、数据同步等DB特性。Redis是开源的,代码量不大2W+,代码风格和实现都很值得学习。在开源的时代,模仿好代码估计是最快的学习方式。
使用
推荐如下资料:
Redis系统性介绍
一个很棒的Redis介绍PPT
Redis官方文档
实现
推荐如下资料:
Redis内存存储结构分析
Redis RDB文件格式全解析,英文:https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format
协议规范(Protocol specification)
Redis: under the hood
解密Redis持久化
Replication
Redis官方文档
可复用代码(版本2.6.3)
malloc封装():tcmalloc|jemalloc|libc 使用最佳的malloc封装,libc的malloc不提供获取分配内存大小的接口。
zmalloc.h,zmalloc.c
异步网络库:封装各种事件组件,提供统一的接口。
ae.c ae_epoll.c ae_evport.c ae.h ae_kqueue.c ae_select.c
TCP|UNIX网络封装: 很简单的封装。
anet.h,anet.c,syncio.c(阻塞式读写)
数据结构
adlist.h,adlist.c (通用双向链表),ziplist.h,ziplist.c,zipmap.h,zipmap.c, intset.h,intset.c(基于连续内存的小数据存储结构),sds.h,sds.c(Binary Safe字符串)
lzf压缩算法
lzf -- an extremely fast/free compression/decompression-method:http://liblzf.plan9.de/
lzf_c.c lzf_d.c lzf.h lzfP.h
文件读写: 封装基于文件和内存的数据读写。
rio.h,rio.c
工具
crc64.c, endianconv.h,endianconv.c(将大端数据转成小端,性能考虑),memtest.c(内存测试工具),pqsort.h,pqsort.c(部分快排),rand.h,rand.c,sha1.c,sha1.h(开源的sha),util.c,util.h(字符串匹配,字符串和整形数转换)
设计
灵活协议
Redis采用可读可组合的文本协议。Redis采用统一的命令格式,基于统一的规范命令Redis天生具备解析和执行多条命令的能力,因此Redis非常容易支持:批量命令、事务、原子操作(脚本原子操作)等。
权衡
Redis的设计需要做各种权衡,每一种权衡都意味着不同的实现方案、资源、性能的折中。Redis不可能适合所有的使用场景,作为KV的内存数据库,Redis做了很多针对性设计:高性能优先、高内存使用效率、多样的数据结构(内存易实现)、单线程读写(CPU非瓶颈)、数据快照(RDB文件)、可过期的数据,同时提供其他可配置的功能:AOF(日志)、可配置的小数据格式、主从Replication、严格内存限制或swap、LRU缓存、磁盘存储等。
小技巧
Redis Administration
FAQ
memory-optimization
其他资料
Redis资料汇总专题

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315583-1-1.html 上篇帖子: Windows下快速安装Redis 下篇帖子: [转]Redis作者谈Redis应用场景
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表