summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2015-11-04 12:58:26 +0100
committerantirez <antirez@gmail.com>2015-11-04 12:58:26 +0100
commitdfe90acbd58b5cd62f32a9823c29ac5c53b42b26 (patch)
tree57b7f1dbacb578a6dfc2b35e451279f87102d248 /README.md
parent462026ceb74415752a15e0ce90c05b0331026071 (diff)
downloadredis-dfe90acbd58b5cd62f32a9823c29ac5c53b42b26.tar.gz
README new internals section improved a bit more.
Diffstat (limited to 'README.md')
-rw-r--r--README.md17
1 files changed, 9 insertions, 8 deletions
diff --git a/README.md b/README.md
index c7d45f46d..37e3fcdc7 100644
--- a/README.md
+++ b/README.md
@@ -375,7 +375,7 @@ The rest of the file implements the generic commands exposed to the client.
object.c
---
-The `robj` structure defined Redis objects was already described. Inside
+The `robj` structure defining Redis objects was already described. Inside
`object.c` there are all the functions that operate with Redis objects at
a basic level, like functions to allocate new objects, handle the reference
counting and so forth. Notable functions inside this file:
@@ -404,13 +404,15 @@ slaves, or to continue the replication after a disconnection.
Other C files
---
-* `t_hash.c`, `t_list.c`, `t_set.c`, `t_string.c` and `t_zset.c` contain the implementation of the Redis data types. They implement both an API to access a given data type, and the client commands implementations for these data types.
+* `t_hash.c`, `t_list.c`, `t_set.c`, `t_string.c` and `t_zset.c` contains the implementation of the Redis data types. They implement both an API to access a given data type, and the client commands implementations for these data types.
* `ae.c` implements the Redis event loop, it's a self contained library which is simple to read and understand.
* `sds.c` is the Redis string library, check http://github.com/antirez/sds for more information.
* `anet.c` is a library to use POSIX networking in a simpler way compared to the raw interface exposed by the kernel.
* `dict.c` is an implementation of a non-blocking hash table which rehashes incrementally.
-* `scripting.c` implements Lua scripting. It is completely self contained from the rest of the implementation and is simple enough to understand.
-* `cluster.c` implements the Redis Cluster. Probably a good read only after being very familiar with the rest of the Redis code base.
+* `scripting.c` implements Lua scripting. It is completely self contained from the rest of the Redis implementation and is simple enough to understand if you are familar with the Lua API.
+* `cluster.c` implements the Redis Cluster. Probably a good read only after being very familiar with the rest of the Redis code base. If you want to read `cluster.c` make sure to read the [Redis Cluster specification][3].
+
+[3]: http://redis.io/topics/cluster-spec
Anatomy of a Redis command
---
@@ -430,16 +432,15 @@ In the above example `2` is the number of arguments the command takes,
while `"rtF"` are the command flags, as documented in the command table
top comment inside `server.c`.
-After the command operated in some way, it returns a reply to the client,
-usually using `addReply()` or a similar function defined inside
-`networking.c`.
+After the command operates in some way, it returns a reply to the client,
+usually using `addReply()` or a similar function defined inside `networking.c`.
There are tons of commands implementations inside th Redis source code
that can serve as examples of actual commands implementations. To write
a few toy commands can be a good exercise to familiarize with the code base.
There are also many other files not described here, but it is useless to
-cover everything here, we want just to help you with the first steps,
+cover everything, we want just to help you with the first steps,
eventually you'll find your way inside the Redis code base :-)
Enjoy!