The full name of redis is REmote DIctionary Server. It is a high-performance key-value storage system written by Salvatore Sanfilippo. It is completely open source and free and complies with the BSD protocol. Redis has the following characteristics with other key-value caching products (such as memcache).
Redis supports data persistence. It can save the data in the memory to the disk and load it again for use when restarting.
Redis not only supports simple key-value type data, but also provides storage of data structures such as list, set, zset, and hash.
Redis supports data backup, that is, data backup in master-slave mode.
Redis has extremely high performance and rich data types. At the same time, all operations of Redis are atomic, and it also supports atomic execution after merging several operations. . In addition, Redis has rich extension features, which supports publish/subscribe, notifications, key expiration and other features.
What’s even better about Redis is that its code style is extremely streamlined. The entire source code is only 23,000 lines, which is very conducive to reading and appreciation! what are you waiting for? Start!
How to obtain the Redis source code?
redis is completely open source, and its source code can be obtained directly from the official website (the latest version currently is 3.2.5).
Git acquisition:
Source code acquisition git clone https://github.com/antirez/redis.git
linux end
cd ... // 这里打开你存放redis的文件夹 wget http://download.redis.io/releases/redis-3.2.5.tar.gz tar zxvf redis-3.2.5.tar.gz
At this point, enter the src folder in the decompressed redis directory, where all the source code of redis is stored.
[root@VM_123_20_centos redis-3.2.5]# cd src/ [root@VM_123_20_centos src]# ls Makefile crc64.h mkreleasehdr.sh redis-cli.o sort.o Makefile.dep crc64.o multi.c redis-sentinel sparkline.c adlist.c db.c multi.o redis-server sparkline.h adlist.h db.o networking.c redis-trib.rb sparkline.o adlist.o debug.c networking.o redisassert.h syncio.c ae.c debug.o notify.c release.c syncio.o ae.h debugmacro.h notify.o release.h t_hash.c ae.o dict.c object.c release.o t_hash.o ae_epoll.c dict.h object.o replication.c t_list.c ae_evport.c dict.o pqsort.c replication.o t_list.o ae_kqueue.c endianconv.c pqsort.h rio.c t_set.c ae_select.c endianconv.h pqsort.o rio.h t_set.o anet.c endianconv.o pubsub.c rio.o t_string.c anet.h fmacros.h pubsub.o scripting.c t_string.o anet.o geo.c quicklist.c scripting.o t_zset.c aof.c geo.h quicklist.h sds.c t_zset.o aof.o geo.o quicklist.o sds.h testhelp.h asciilogo.h help.h rand.c sds.o util.c bio.c hyperloglog.c rand.h sdsalloc.h util.h bio.h hyperloglog.o rand.o sentinel.c util.o bio.o intset.c rdb.c sentinel.o valgrind.sup bitops.c intset.h rdb.h server.c version.h bitops.o intset.o rdb.o server.h ziplist.c blocked.c latency.c redis-benchmark server.o ziplist.h blocked.o latency.h redis-benchmark.c setproctitle.c ziplist.o cluster.c latency.o redis-benchmark.o setproctitle.o zipmap.c cluster.h lzf.h redis-check-aof sha1.c zipmap.h cluster.o lzfP.h redis-check-aof.c sha1.h zipmap.o config.c lzf_c.c redis-check-aof.o sha1.o zmalloc.c config.h lzf_c.o redis-check-rdb slowlog.c zmalloc.h config.o lzf_d.c redis-check-rdb.c slowlog.h zmalloc.o crc16.c lzf_d.o redis-check-rdb.o slowlog.o crc16.o memtest.c redis-cli solarisfixes.h crc64.c memtest.o redis-cli.c sort.c
The above is the detailed content of How many lines of redis source code. For more information, please follow other related articles on the PHP Chinese website!