Nosql Redis学习
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资料汇总专题 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【深入了解cocos2d-x 3.x】一步一步通过ClippingNode实现一
- 两种高性能I/O设计模式(Reactor/Proactor)的比较
- $.parseJSON(data)只支持标准的JSON
- API聚合网关技术选型参考-网友实战-使用协程
- 疯狂XML学习笔记(9)-------------Schema内置类型
- .net – Entity Framework 6 with SQLite 3 Code First –
- 转载----mebusw:BlazeDS的功能原理及配置实例
- Flash Builder4.6 无法启动,并且报 Failed to create the
- c# – ICSharpCode.SharpZipLib验证zip文件
- 在userMapper.xml文件中模糊查询的常用的3种方法