翻译README.md基础使用部分
This commit is contained in:
parent
7281c226b6
commit
a8ce4d320b
89
readme_zh.md
89
readme_zh.md
@ -1,8 +1,8 @@
|
||||
|
||||
这个README.md知识提供快速开始的文档。其他详细信息可以查看:[redis.io](https://redis.io/)
|
||||
|
||||
什么是Redis?
|
||||
------
|
||||
## 什么是Redis?
|
||||
|
||||
|
||||
Redis是一个内存结构数据库。这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令是使用带有TCP套接字和简单协议的
|
||||
服务器-客户机模型发送的。因此不同的进程可以以共享的方式查询和修改相同的数据结构。
|
||||
@ -22,8 +22,8 @@ Redis中实现的数据结构有几个特殊属性:
|
||||
- Redis命令的完整列表。[http://redis.io/commands](http://redis.io/commands)
|
||||
- Redis官方文档中还有更多内容。[http://redis.io/documentation](http://redis.io/documentation)
|
||||
|
||||
构建Redis
|
||||
------
|
||||
## 构建Redis
|
||||
|
||||
|
||||
Redis可以在Linux、OSX、OpenBSD、NetBSD、FreeBSD上编译和使用。我们支持big-endian和little-endian体系结构,以及32位和64位
|
||||
系统。
|
||||
@ -53,8 +53,8 @@ make test
|
||||
./runtest --tls
|
||||
```
|
||||
|
||||
修复依赖项或缓存生成选项的生成问题
|
||||
-------
|
||||
### 修复依赖项或缓存生成选项的生成问题
|
||||
|
||||
|
||||
Redis有一些包含在deps目录中的依赖项。即使依赖项源代码中的某些内容发生更改,make也不会自动重新生成依赖项。
|
||||
|
||||
@ -67,8 +67,8 @@ make distclean
|
||||
另外,如果强制某些生成选项,如32位目标、无C编译器优化(用于调试目的)和其他类似的生成时选项,则这些选项将被无限期缓存,
|
||||
直到发出makedistclean命令。
|
||||
|
||||
修复生成32位二进制文件的问题
|
||||
-----
|
||||
### 修复生成32位二进制文件的问题
|
||||
|
||||
|
||||
如果在用32位目标构建Redis之后需要用64位目标重新构建它,或者反过来,您需要在Redis发行版的根目录中执行`make distclean`。
|
||||
|
||||
@ -76,8 +76,8 @@ make distclean
|
||||
- 安装包libc6-dev-i386(也可以尝试g++-multilib)。
|
||||
- 尝试使用以下命令行` makecflags=“-m32-march=native”LDFLAGS=“-m32”` 代替` make32bit`
|
||||
|
||||
内存分配
|
||||
-----
|
||||
### 内存分配
|
||||
|
||||
通过设置MALLOC环境变量,可以在构建Redis时选择非默认内存分配器。Redis在默认情况下是针对libc malloc编译和链接的,但
|
||||
jemalloc是Linux系统上的默认设置。之所以选择此默认值,是因为jemalloc被证明比libc malloc具有更少的碎片问题。
|
||||
|
||||
@ -90,16 +90,16 @@ jemalloc是Linux系统上的默认设置。之所以选择此默认值,是因
|
||||
make MALLOC=jemalloc
|
||||
```
|
||||
|
||||
详细构建信息
|
||||
-----
|
||||
### 显示详细构建信息
|
||||
|
||||
默认情况下,Redis将生成用户友好的彩色输出。如果要查看更详细的输出,请使用以下命令:
|
||||
|
||||
```sh
|
||||
make V=1
|
||||
```
|
||||
|
||||
运行Redis
|
||||
------
|
||||
### 运行Redis
|
||||
|
||||
|
||||
要使用默认配置运行Redis,执行下面命令:
|
||||
|
||||
@ -122,13 +122,13 @@ cd src
|
||||
```
|
||||
所有redis.conf的配置参数也支持使用命令行作为参数,使用完全相同的名称。
|
||||
|
||||
Redis 支持TLS
|
||||
-----
|
||||
### Redis 支持TLS
|
||||
|
||||
|
||||
请查看[TLS.md](https://git.zeekling.cn/zeekling/redis/src/branch/master/TLS.md)文件获取有关如何将Redis与TLS一起使用的详细信息。
|
||||
|
||||
使用Redis
|
||||
------
|
||||
### 使用Redis
|
||||
|
||||
|
||||
您可以使用redis cli来连接redis。启动一个redis服务器实例,然后在另一个终端上尝试以下操作:
|
||||
|
||||
@ -150,8 +150,7 @@ redis>
|
||||
|
||||
您可以在中找到所有可用命令的列表:[http://redis.io/commands](http://redis.io/commands).
|
||||
|
||||
安装Redis
|
||||
------
|
||||
### 安装Redis
|
||||
|
||||
要将Redis二进制文件安装到/usr/local/bin中,只需使用:
|
||||
|
||||
@ -176,4 +175,54 @@ cd utils
|
||||
|
||||
您可以使用名为`/etc/init.d/Redis_<portnumber>`的脚本来停止和启动Redis,例如`/etc/init.d/Redis_6379`。
|
||||
|
||||
## 代码贡献
|
||||
|
||||
**注意**: 通过以任何形式向Redis项目贡献代码,包括通过Github发送请求、通过私人电子邮件或公共讨论组发送代码片段或补丁,
|
||||
您同意根据BSD许可条款发布代码,您可以在Redis源代码发行版中包含的[COPYING](https://git.zeekling.cn/zeekling/redis/src/branch/master/COPYING)中找到该许可证。
|
||||
|
||||
有关详细信息,请参阅此源发行版中的[CONTRIBUTING](https://git.zeekling.cn/zeekling/redis/src/branch/master/CONTRIBUTING)。
|
||||
|
||||
|
||||
## Redis 内部结构
|
||||
|
||||
|
||||
如果您正在阅读这篇自述,那么您很可能是在Github页面前面或者您刚刚解除了Redis发行tar-ball的限制。在这两种情况下,您基本上
|
||||
都离源代码只有一步之遥,所以这里我们将解释Redis源代码的布局、每个文件中的基本内容、Redis服务器内部最重要的功能和结构等
|
||||
等。我们将所有的讨论保持在一个高水平上,而不是深入到细节,因为这个文档将是巨大的,否则我们的代码库将不断变化,但一个总体
|
||||
的想法应该是一个很好的起点来理解更多。此外,大部分代码都有大量注释,并且易于理解。
|
||||
|
||||
### 源代码布局
|
||||
|
||||
Redis根目录只包含这个readme文件、调用src目录中实际Makefile的Makefile以及Redis和Sentinel的示例配置。您可以找到一些用于运行
|
||||
Redis、Redis Cluster和Redis Sentinel单元测试的shell脚本,这些测试在tests目录中实现。
|
||||
|
||||
根目录中有以下重要目录:
|
||||
|
||||
- `src`: 包含Redis实现,用C编写。
|
||||
- `tests`:包含在Tcl中实现的单元测试。
|
||||
- `deps`:包含Redis使用的库。编译Redis所需的一切都在这个目录中;您的系统只需要提供libc、一个与POSIX兼容的接口和一个C编
|
||||
译器。值得注意的是,deps包含jemalloc的副本,这是Linux下Redis的默认分配器。请注意,在deps下,还有一些事情是从Redis项目
|
||||
开始的,但是对于这些项目,主存储库不是antirez/Redis。
|
||||
|
||||
还有一些目录,但它们对我们的目标并不重要。我们将主要关注src,其中包含Redis实现,探索每个文件中都有什么。为了逐步揭示不同的复杂性层次,文件的公开顺序是必须遵循的逻辑顺序。
|
||||
|
||||
**注意**:最近Redis被重构了不少。函数名和文件名已更改,因此您可能会发现此文档更接近于不稳定分支的反映。例如,在Redis 3.0
|
||||
中,server.c和server.h文件名为Redis.c和Redis.h,但总体结构是相同的。请记住,所有新的开发和拉取请求都应该针对不稳定的分支执行。
|
||||
|
||||
### server.h
|
||||
|
||||
理解程序如何工作的最简单的方法是理解它使用的数据结构。所以我们从Redis的主头文件开始,它是server.h。
|
||||
|
||||
所有的服务器配置和一般的共享状态都是在一个名为server的全局结构中定义的,类型为struct rediserver。该结构中的几个重要字段是:
|
||||
|
||||
- `server.db`:是Redis数据库的数组,其中存储数据。
|
||||
- `server.commands`:是命令列表。
|
||||
- `server.clients`:是连接到服务器的客户端的链接列表。
|
||||
- `server.master`:是一个特殊的客户机,如果实例是副本,则是主客户机。
|
||||
|
||||
还有很多其他的领域。大多数字段直接在结构定义内部进行注释。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user