快捷搜索:  汽车  科技

redis代码实现,Redis源码解析一代码结构

redis代码实现,Redis源码解析一代码结构对于服务器端,首先通过commandCommand函数对服务器端的指令实现过程进行解析。随后通过main函数对于服务器端框架做解析。Server相关文件 -adlist.c -quicklist.c -ae.c -anet.c -dict.c -server.c -sds.c -zmalloc.c -lzf_c.c -lzf_d.c -pqsort.c -zipmap.c -sha1.c -ziplist.c -release.c -networking.c -util.c -object.c -db.c -replication.c -rdb.c -t_string.c -t_list.c -t_set.c -t_zset.c -t_hash.c -config.c -aof.c -pubsub.c -multi.c -debug.c -sort.c -intset.c -syncio.

简述

Redis是一种数据结构服务器。通过不同的指令可以从Redis服务器上获取可变的数据结构。在交互上,Redis使用服务端-客户端模式进行交互。采用TCP sockets进行通讯。不同的进程可以查询和修改共享的数据结构。

Redis的特性包括:

(1)Redis关注将数据结构写入磁盘,所以Redis的数据是非易失性的。

(2)Redis注重内存使用效率,所以相比其他高级语言设定的数据结构会使用更少的内存。

(3)Redis提供了很多与数据库类似的特性,所以可以作为数据库使用。

代码结构

本文以Redis 6.2版本作为目标。根据Redis的软件结构,可以将代码分为服务器端和客户端两部分。

对于服务器端,server.c是它的入口。对于客户端,redis-cli.c是它的入口。

Server相关文件 -adlist.c -quicklist.c -ae.c -anet.c -dict.c -server.c -sds.c -zmalloc.c -lzf_c.c -lzf_d.c -pqsort.c -zipmap.c -sha1.c -ziplist.c -release.c -networking.c -util.c -object.c -db.c -replication.c -rdb.c -t_string.c -t_list.c -t_set.c -t_zset.c -t_hash.c -config.c -aof.c -pubsub.c -multi.c -debug.c -sort.c -intset.c -syncio.c -cluster.c -crc16.c -endianconv.c -slowlog.c -scripting.c -bio.c -rio.c -rand.c -memtest.c -crcspeed.c -crc64.c -bitops.c -sentinel.c -notify.c -setproctitle.c -blocked.c -hyperloglog.c -latency.c -sparkline.c -redis-check-rdb.c -redis-check-aof.c -geo.c -lazyfree.c -module.c -evict.c -expire.c -geohash.c -geohash_helper.c -childinfo.c -defrag.c -siphash.c -rax.c -t_stream.c -listpack.c -localtime.c -lolwut.c -lolwut5.c -lolwut6.c -acl.c -gopher.c -tracking.c -connection.c -tls.c -sha256.c -timeout.c -setcpuaffinity.c -monotonic.c -mt19937-64.c

Client相关文件 -anet.c -adlist.c -dict.c -redis-cli.c -zmalloc.c -release.c -ae.c -crcspeed.c -crc64.c -siphash.c -crc16.c -monotonic.c -cli_common.c -mt19937-64.c 解析顺序

本文根据自底向上的分析方式,从基础函数开始,将服务器端与客户端的源代码进行解析。

对于服务器端,首先通过commandCommand函数对服务器端的指令实现过程进行解析。随后通过main函数对于服务器端框架做解析。

redis代码实现,Redis源码解析一代码结构(1)

server.c(commandCommand)

对于客户端,直接通过main函数对客户端与服务器端的交互模式做解析。

redis代码实现,Redis源码解析一代码结构(2)

redis-cli.c

猜您喜欢: