Redis之1-基本目录

 redis的作者,叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。他使用的网名是antirez。相应的github地址:https://github.com/antirez/redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1] 
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)
目前,Vmware在资助着redis项目的开发和维护。

附录:各个源码文件的作用简介

文件作用
adlist.c 、 adlist.h双端链表数据结构的实现。
ae.c 、 ae.h 、 ae_epoll.c 、ae_evport.c 、 ae_kqueue.c 、ae_select.c事件处理器,以及各个具体实现。
anet.c 、 anet.hRedis 的异步网络框架,内容主要为对 socket 库的包装。
aof.cAOF 功能的实现。
asciilogo.h保存了 Redis 的 ASCII LOGO 。
bio.c 、 bio.hRedis 的后台 I/O 程序,用于将 I/O 操作放到子线程里面执行, 减少 I/O 操作对主线程的阻塞。
bitops.c二进制位操作命令的实现文件。
blocked.c用于实现 BLPOP 命令和 WAIT 命令的阻塞效果。
cluster.c 、 cluster.hRedis 的集群实现。
config.c 、 config.hRedis 的配置管理实现,负责读取并分析配置文件, 然后根据这些配置修改 Redis 服务器的各个选项。
crc16.c 、 crc64.c 、 crc64.h计算 CRC 校验和。
db.c数据库实现。
debug.c调试实现。
dict.c 、 dict.h字典数据结构的实现。
endianconv.c 、 endianconv.h二进制的大端、小端转换函数。
fmacros.h一些移植性方面的宏。
help.hutils/generate-command-help.rb 程序自动生成的命令帮助信息。
hyperloglog.cHyperLogLog 数据结构的实现。
intset.c 、 intset.h整数集合数据结构的实现,用于优化 SET 类型。
lzf_c.c 、 lzf_d.c 、 lzf.h 、lzfP.hRedis 对字符串和 RDB 文件进行压缩时使用的 LZF 压缩算法的实现。
Makefile 、 Makefile.dep构建文件。
memtest.c内存测试。
mkreleasehdr.sh用于生成释出信息的脚本。
multi.cRedis 的事务实现。
networking.cRedis 的客户端网络操作库, 用于实现命令请求接收、发送命令回复等工作, 文件中的函数大多为 write 、 read 、 close 等函数的包装, 以及各种协议的分析和构建函数。
notify.cRedis 的数据库通知实现。
object.cRedis 的对象系统实现。
pqsort.c 、 pqsort.h快速排序(QuickSort)算法的实现。
pubsub.c发布与订阅功能的实现。
rand.c 、 rand.h伪随机数生成器。
rdb.c 、 rdb.hRDB 持久化功能的实现。
redisassert.hRedis 自建的断言系统。
redis-benchmark.cRedis 的性能测试程序。
redis.c负责服务器的启动、维护和关闭等事项。
redis-check-aof.c 、 redis-check-dump.cRDB 文件和 AOF 文件的合法性检查程序。
redis-cli.cRedis 客户端的实现。
redis.hRedis 的主要头文件,记录了 Redis 中的大部分数据结构, 包括服务器状态和客户端状态。
redis-trib.rbRedis 集群的管理程序。
release.c 、 release.h记录和生成 Redis 的释出版本信息。
replication.c复制功能的实现。
rio.c 、 rio.hRedis 对文件 I/O 函数的包装, 在普通 I/O 函数的基础上增加了显式缓存、以及计算校验和等功能。
scripting.c脚本功能的实现。
sds.c 、 sds.hSDS 数据结构的实现,SDS 为 Redis 的默认字符串表示。
sentinel.cRedis Sentinel 的实现。
setproctitle.c进程环境设置函数。
sha1.c 、 sha1.hSHA1 校验和计算函数。
slowlog.c 、 slowlog.h慢查询功能的实现。
solarisfixes.h针对 Solaris 系统的补丁。
sort.cSORT 命令的实现。
syncio.c同步 I/O 操作。
testhelp.h测试辅助宏。
t_hash.c 、 t_list.c 、 t_set.c、 t_string.c 、 t_zset.c定义了 Redis 的各种数据类型,以及这些数据类型的命令。
util.c 、 util.h各种辅助函数。
valgrind.supvalgrind 的suppression文件。
version.h记录了 Redis 的版本号。
ziplist.c 、 ziplist.hZIPLIST 数据结构的实现,用于优化 LIST 类型。
zipmap.c 、 zipmap.hZIPMAP 数据结构的实现,在 Redis 2.6 以前用与优化 HASH 类型, Redis 2.6 开始已经废弃。
zmalloc.c 、 zmalloc.h内存管理程序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值