diff --git a/translated/tech/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md b/published/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md
similarity index 87%
rename from translated/tech/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md
rename to published/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md
index 7de8349b9c..4380346dc9 100644
--- a/translated/tech/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md
+++ b/published/20150824 How to Setup Zephyr Test Management Tool on CentOS 7.x.md
@@ -1,6 +1,7 @@
如何在 CentOS 7.x 上安装 Zephyr 测试管理工具
================================================================================
-测试管理工具包括作为测试人员需要的任何东西。测试管理工具用来记录测试执行的结果、计划测试活动以及报告质量保证活动的情况。在这篇文章中我们会向你介绍如何配置 Zephyr 测试管理工具,它包括了管理测试活动需要的所有东西,不需要单独安装测试活动所需要的应用程序从而降低测试人员不必要的麻烦。一旦你安装完它,你就看可以用它跟踪 bug、缺陷,和你的团队成员协作项目任务,因为你可以轻松地共享和访问测试过程中多个项目团队的数据。
+
+测试管理(Test Management)指测试人员所需要的任何的所有东西。测试管理工具用来记录测试执行的结果、计划测试活动以及汇报质量控制活动的情况。在这篇文章中我们会向你介绍如何配置 Zephyr 测试管理工具,它包括了管理测试活动需要的所有东西,不需要单独安装测试活动所需要的应用程序从而降低测试人员不必要的麻烦。一旦你安装完它,你就看可以用它跟踪 bug 和缺陷,和你的团队成员协作项目任务,因为你可以轻松地共享和访问测试过程中多个项目团队的数据。
### Zephyr 要求 ###
@@ -19,21 +20,21 @@
Packages |
-JDK 7 or above , Oracle JDK 6 update |
-No Prior Tomcat, MySQL installed |
+JDK 7 或更高 , Oracle JDK 6 update |
+没有事先安装的 Tomcat 和 MySQL |
RAM |
4 GB |
-Preferred 8 GB |
+推荐 8 GB |
CPU |
-2.0 GHZ or Higher |
+2.0 GHZ 或更高 |
Hard Disk |
-30 GB , Atleast 5GB must be free |
+30 GB , 至少 5GB |
@@ -48,8 +49,6 @@
[root@centos-007 ~]# yum install java-1.7.0-openjdk-1.7.0.79-2.5.5.2.el7_1
-----------
-
[root@centos-007 ~]# yum install java-1.7.0-openjdk-devel-1.7.0.85-2.6.1.2.el7_1.x86_64
安装完 java 和它的所有依赖后,运行下面的命令设置 JAVA_HOME 环境变量。
@@ -61,8 +60,6 @@
[root@centos-007 ~]# java –version
-----------
-
java version "1.7.0_79"
OpenJDK Runtime Environment (rhel-2.5.5.2.el7_1-x86_64 u79-b14)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
@@ -71,7 +68,7 @@
### 安装 MySQL 5.6.x ###
-如果的机器上有其它的 MySQL,建议你先卸载它们并安装这个版本,或者升级它们的模式到指定的版本。因为 Zephyr 前提要求这个指定的主要/最小 MySQL (5.6.x)版本要有 root 用户名。
+如果的机器上有其它的 MySQL,建议你先卸载它们并安装这个版本,或者升级它们的模式(schemas)到指定的版本。因为 Zephyr 前提要求这个指定的 5.6.x 版本的 MySQL ,要有 root 用户名。
可以按照下面的步骤在 CentOS-7.1 上安装 MySQL 5.6 :
@@ -93,10 +90,7 @@
[root@centos-007 ~]# service mysqld start
[root@centos-007 ~]# service mysqld status
-对于全新安装的 MySQL 服务器,MySQL root 用户的密码为空。
-为了安全起见,我们应该重置 MySQL root 用户的密码。
-
-用自动生成的空密码连接到 MySQL 并更改 root 用户密码。
+对于全新安装的 MySQL 服务器,MySQL root 用户的密码为空。为了安全起见,我们应该重置 MySQL root 用户的密码。用自动生成的空密码连接到 MySQL 并更改 root 用户密码。
[root@centos-007 ~]# mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_password');
@@ -224,7 +218,7 @@ via: http://linoxide.com/linux-how-to/setup-zephyr-tool-centos-7-x/
作者:[Kashif Siddique][a]
译者:[ictlyh](http://mutouxiaogui.cn/blog/)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20151104 How to Install Redis Server on CentOS 7.md b/published/20151104 How to Install Redis Server on CentOS 7.md
new file mode 100644
index 0000000000..90e090ef39
--- /dev/null
+++ b/published/20151104 How to Install Redis Server on CentOS 7.md
@@ -0,0 +1,239 @@
+如何在 CentOS 7 上安装 Redis 服务器
+================================================================================
+
+大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它。编译源代码,安装二进制文件,创建、安装文件。在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速。
+
+
+
+*Redis 服务器*
+
+Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率。Redis 支持多种编程语言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多语言。redis 的代码量很小,只有约3万行,它只做“很少”的事,但是做的很好。尽管是在内存里工作,但是数据持久化的保存还是有的,而redis 的可靠性就很高,同时也支持集群,这些可以很好的保证你的数据安全。
+
+### 构建 Redis ###
+
+redis 目前没有官方 RPM 安装包,我们需要从源代码编译,而为了要编译就需要安装 Make 和 GCC。
+
+如果没有安装过 GCC 和 Make,那么就使用 yum 安装。
+
+ yum install gcc make
+
+从[官网][1]下载 tar 压缩包。
+
+ curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
+
+解压缩。
+
+ tar zxvf redis-3.0.4.tar.gz
+
+进入解压后的目录。
+
+ cd redis-3.0.4
+
+使用Make 编译源文件。
+
+ make
+
+### 安装 ###
+
+进入源文件的目录。
+
+ cd src
+
+复制 Redis 的服务器和客户端到 /usr/local/bin。
+
+ cp redis-server redis-cli /usr/local/bin
+
+最好也把 sentinel,benchmark 和 check 复制过去。
+
+ cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
+
+创建redis 配置文件夹。
+
+ mkdir /etc/redis
+
+在`/var/lib/redis` 下创建有效的保存数据的目录
+
+ mkdir -p /var/lib/redis/6379
+
+#### 系统参数 ####
+
+为了让 redis 正常工作需要配置一些内核参数。
+
+配置 `vm.overcommit_memory` 为1,这可以避免数据被截断,详情[见此][2]。
+
+ sysctl -w vm.overcommit_memory=1
+
+修改 backlog 连接数的最大值超过 redis.conf 中的 `tcp-backlog` 值,即默认值511。你可以在[kernel.org][3] 找到更多有关基于 sysctl 的 ip 网络隧道的信息。
+
+ sysctl -w net.core.somaxconn=512
+
+取消对透明巨页内存(transparent huge pages)的支持,因为这会造成 redis 使用过程产生延时和内存访问问题。
+
+ echo never > /sys/kernel/mm/transparent_hugepage/enabled
+
+### redis.conf ###
+
+redis.conf 是 redis 的配置文件,然而你会看到这个文件的名字是 6379.conf ,而这个数字就是 redis 监听的网络端口。如果你想要运行超过一个的 redis 实例,推荐用这样的名字。
+
+复制示例的 redis.conf 到 **/etc/redis/6379.conf**。
+
+ cp redis.conf /etc/redis/6379.conf
+
+现在编辑这个文件并且配置参数。
+
+ vi /etc/redis/6379.conf
+
+#### daemonize ####
+
+设置 `daemonize` 为 no,systemd 需要它运行在前台,否则 redis 会突然挂掉。
+
+ daemonize no
+
+#### pidfile ####
+
+设置 `pidfile` 为 /var/run/redis_6379.pid。
+
+ pidfile /var/run/redis_6379.pid
+
+#### port ####
+
+如果不准备用默认端口,可以修改。
+
+ port 6379
+
+#### loglevel ####
+
+设置日志级别。
+
+ loglevel notice
+
+#### logfile ####
+
+修改日志文件路径。
+
+ logfile /var/log/redis_6379.log
+
+#### dir ####
+
+设置目录为 /var/lib/redis/6379
+
+ dir /var/lib/redis/6379
+
+### 安全 ###
+
+下面有几个可以提高安全性的操作。
+
+#### Unix sockets ####
+
+在很多情况下,客户端程序和服务器端程序运行在同一个机器上,所以不需要监听网络上的 socket。如果这和你的使用情况类似,你就可以使用 unix socket 替代网络 socket,为此你需要配置 `port` 为0,然后配置下面的选项来启用 unix socket。
+
+设置 unix socket 的套接字文件。
+
+ unixsocket /tmp/redis.sock
+
+限制 socket 文件的权限。
+
+ unixsocketperm 700
+
+现在为了让 redis-cli 可以访问,应该使用 -s 参数指向该 socket 文件。
+
+ redis-cli -s /tmp/redis.sock
+
+#### requirepass ####
+
+你可能需要远程访问,如果是,那么你应该设置密码,这样子每次操作之前要求输入密码。
+
+ requirepass "bTFBx1NYYWRMTUEyNHhsCg"
+
+#### rename-command ####
+
+想象一下如下指令的输出。是的,这会输出服务器的配置,所以你应该在任何可能的情况下拒绝这种访问。
+
+ CONFIG GET *
+
+为了限制甚至禁止这条或者其他指令可以使用 `rename-command` 命令。你必须提供一个命令名和替代的名字。要禁止的话需要设置替代的名字为空字符串,这样禁止任何人猜测命令的名字会比较安全。
+
+ rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"
+ rename-command FLUSHALL ""
+ rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
+
+
+
+*使用密码通过 unix socket 访问,和修改命令*
+
+#### 快照 ####
+
+默认情况下,redis 会周期性的将数据集转储到我们设置的目录下的 **dump.rdb** 文件。你可以使用 `save` 命令配置转储的频率,它的第一个参数是以秒为单位的时间帧,第二个参数是在数据文件上进行修改的数量。
+
+每隔15分钟并且最少修改过一次键。
+
+ save 900 1
+
+每隔5分钟并且最少修改过10次键。
+
+ save 300 10
+
+每隔1分钟并且最少修改过10000次键。
+
+ save 60 10000
+
+文件 `/var/lib/redis/6379/dump.rdb` 包含了从上次保存以来内存里数据集的转储数据。因为它先创建临时文件然后替换之前的转储文件,这里不存在数据破坏的问题,你不用担心,可以直接复制这个文件。
+
+### 开机时启动 ###
+
+你可以使用 systemd 将 redis 添加到系统开机启动列表。
+
+复制示例的 init_script 文件到 `/etc/init.d`,注意脚本名所代表的端口号。
+
+ cp utils/redis_init_script /etc/init.d/redis_6379
+
+现在我们要使用 systemd,所以在 `/etc/systems/system` 下创建一个单位文件名字为 `redis_6379.service`。
+
+ vi /etc/systemd/system/redis_6379.service
+
+填写下面的内容,详情可见 systemd.service。
+
+ [Unit]
+ Description=Redis on port 6379
+
+ [Service]
+ Type=forking
+ ExecStart=/etc/init.d/redis_6379 start
+ ExecStop=/etc/init.d/redis_6379 stop
+
+ [Install]
+ WantedBy=multi-user.target
+
+现在添加我之前在 `/etc/sysctl.conf` 里面修改过的内存过量使用和 backlog 最大值的选项。
+
+ vm.overcommit_memory = 1
+
+ net.core.somaxconn=512
+
+对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 `/etc/rc.local` 的结尾。
+
+ echo never > /sys/kernel/mm/transparent_hugepage/enabled
+
+### 总结 ###
+
+这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 [replication][4] 和 [Sentinel][5] 来提高可用性,或者[将数据分散][6]在多个服务器上,创建服务器集群。
+
+谢谢阅读。
+
+--------------------------------------------------------------------------------
+
+via: http://linoxide.com/storage/install-redis-server-centos-7/
+
+作者:[Carlos Alberto][a]
+译者:[ezio](https://github.com/oska874)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]:http://linoxide.com/author/carlosal/
+[1]:http://redis.io/download
+[2]:https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
+[3]:https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
+[4]:http://redis.io/topics/replication
+[5]:http://redis.io/topics/sentinel
+[6]:http://redis.io/topics/partitioning
diff --git a/translated/talk/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md b/published/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md
similarity index 80%
rename from translated/talk/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md
rename to published/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md
index e927a02b8c..964a9774ca 100644
--- a/translated/talk/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md
+++ b/published/20151105 Linus Torvalds Lambasts Open Source Programmers over Insecure Code.md
@@ -2,9 +2,9 @@
================================================================================

-Linus 最近(LCTT 译注:其实是11月份,没有及时翻译出来,看官轻喷Orz)骂了一个 Linux 开发者,原因是他向 kernel 提交了一份不安全的代码。
+Linus 上个月骂了一个 Linux 开发者,原因是他向 kernel 提交了一份不安全的代码。
-Linus 是个 Linux 内核项目非官方的“仁慈的独裁者(LCTT译注:英国《卫报》曾将乔布斯评价为‘仁慈的独裁者’)”,这意味着他有权决定将哪些代码合入内核,哪些代码直接丢掉。
+Linus 是个 Linux 内核项目非官方的“仁慈的独裁者(benevolent dictator)”(LCTT译注:英国《卫报》曾将乔布斯评价为‘仁慈的独裁者’),这意味着他有权决定将哪些代码合入内核,哪些代码直接丢掉。
在10月28号,一个开源开发者提交的代码未能符合 Torvalds 的要求,于是遭来了[一顿臭骂][1]。Torvalds 在他提交的代码下评论道:“你提交的是什么东西。”
@@ -14,7 +14,7 @@ Torvalds 为什么会这么生气?他觉得那段代码可以写得更有效
Torvalds 重新写了一版代码将原来的那份替换掉,并建议所有开发者应该像他那种风格来写代码。
-Torvalds 一直在嘲讽那些不符合他观点的人。早在1991年他就攻击过[Andrew Tanenbaum][2]——那个 Minix 操作系统的作者,而那个 Minix 操作系统被 Torvalds 描述为“脑残”。
+Torvalds 一直在嘲讽那些不符合他观点的人。早在1991年他就攻击过 [Andrew Tanenbaum][2]——那个 Minix 操作系统的作者,而那个 Minix 操作系统被 Torvalds 描述为“脑残”。
但是 Torvalds 在这次嘲讽中表现得更有战略性了:“我想让*每个人*都知道,像他这种代码是完全不能被接收的。”他说他的目的是提醒每个 Linux 开发者,而不是针对那个开发者。
@@ -26,7 +26,7 @@ via: http://thevarguy.com/open-source-application-software-companies/110415/linu
作者:[Christopher Tozzi][a]
译者:[bazz2](https://github.com/bazz2)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/translated/tech/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md b/published/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md
similarity index 71%
rename from translated/tech/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md
rename to published/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md
index a918eff18f..a527982122 100644
--- a/translated/tech/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md
+++ b/published/20151204 How to Remove Banned IP from Fail2ban on CentOS 6 or CentOS 7.md
@@ -1,12 +1,12 @@
-如何在CentOS 6/7 上移除被Fail2ban禁止的IP
+如何在 CentOS 6/7 上移除被 Fail2ban 禁止的 IP
================================================================================

-[Fail2ban][1]是一款用于保护你的服务器免于暴力攻击的入侵保护软件。Fail2ban用python写成,并被广泛用户大多数服务器上。Fail2ban将扫描日志文件和IP黑名单来显示恶意软件、过多的密码失败、web服务器利用、Wordpress插件攻击和其他漏洞。如果你已经安装并使用了fail2ban来保护你的web服务器,你也许会想知道如何在CentOS 6、CentOS 7、RHEL 6、RHEL 7 和 Oracle Linux 6/7中找到被Fail2ban阻止的IP,或者你想将ip从fail2ban监狱中移除。
+[fail2ban][1] 是一款用于保护你的服务器免于暴力攻击的入侵保护软件。fail2ban 用 python 写成,并广泛用于很多服务器上。fail2ban 会扫描日志文件和 IP 黑名单来显示恶意软件、过多的密码失败尝试、web 服务器利用、wordpress 插件攻击和其他漏洞。如果你已经安装并使用了 fail2ban 来保护你的 web 服务器,你也许会想知道如何在 CentOS 6、CentOS 7、RHEL 6、RHEL 7 和 Oracle Linux 6/7 中找到被 fail2ban 阻止的 IP,或者你想将 ip 从 fail2ban 监狱中移除。
-### 如何列出被禁止的IP ###
+### 如何列出被禁止的 IP ###
-要查看所有被禁止的ip地址,运行下面的命令:
+要查看所有被禁止的 ip 地址,运行下面的命令:
# iptables -L
Chain INPUT (policy ACCEPT)
@@ -40,19 +40,19 @@
REJECT all -- 104.194.26.205 anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
-### 如何从Fail2ban中移除IP ###
+### 如何从 Fail2ban 中移除 IP ###
# iptables -D f2b-NoAuthFailures -s banned_ip -j REJECT
-我希望这篇教程可以给你在CentOS 6、CentOS 7、RHEL 6、RHEL 7 和 Oracle Linux 6/7中移除被禁止的ip一些指导。
+我希望这篇教程可以给你在 CentOS 6、CentOS 7、RHEL 6、RHEL 7 和 Oracle Linux 6/7 中移除被禁止的 ip 一些指导。
--------------------------------------------------------------------------------
via: http://www.ehowstuff.com/how-to-remove-banned-ip-from-fail2ban-on-centos/
作者:[skytech][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/sources/news/Let's Encrypt--Entering Public Beta.md b/sources/news/Let's Encrypt--Entering Public Beta.md
deleted file mode 100644
index 5c5c61ebbd..0000000000
--- a/sources/news/Let's Encrypt--Entering Public Beta.md
+++ /dev/null
@@ -1,44 +0,0 @@
-Let's Encrypt:Entering Public Beta
-================================================================================
-We’re happy to announce that Let’s Encrypt has entered Public Beta. Invitations are no longer needed in order to get free
-certificates from Let’s Encrypt.
-
-It’s time for the Web to take a big step forward in terms of security and privacy. We want to see HTTPS become the default.
-Let’s Encrypt was built to enable that by making it as easy as possible to get and manage certificates.
-
-We’d like to thank everyone who participated in the Limited Beta. Let’s Encrypt issued over 26,000 certificates during the
-Limited Beta period. This allowed us to gain valuable insight into how our systems perform, and to be confident about moving
-to Public Beta.
-
-We’d also like to thank all of our [sponsors][1] for their support. We’re happy to have announced earlier today that
-[Facebook is our newest Gold sponsor][2]/
-
-We have more work to do before we’re comfortable dropping the beta label entirely, particularly on the client experience.
-Automation is a cornerstone of our strategy, and we need to make sure that the client works smoothly and reliably on a
-wide range of platforms. We’ll be monitoring feedback from users closely, and making improvements as quickly as possible.
-
-Instructions for getting a certificate with the [Let’s Encrypt client][3] can be found [here][4].
-
-[Let’s Encrypt Community Support][5] is an invaluable resource for our community, we strongly recommend making use of the
-site if you have any questions about Let’s Encrypt.
-
-Let’s Encrypt depends on support from a wide variety of individuals and organizations. Please consider [getting involved][6]
-, and if your company or organization would like to sponsor Let’s Encrypt please email us at [sponsor@letsencrypt.org][7].
---------------------------------------------------------------------------------
-
-via: https://letsencrypt.org/2015/12/03/entering-public-beta.html
-
-作者:[Josh Aas][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:https://letsencrypt.org/2015/12/03/entering-public-beta.html
-[1]:https://letsencrypt.org/sponsors/
-[2]:https://letsencrypt.org/2015/12/03/facebook-sponsorship.html
-[3]:https://github.com/letsencrypt/letsencrypt
-[4]:https://letsencrypt.readthedocs.org/en/latest/
-[5]:https://community.letsencrypt.org/
-[6]:https://letsencrypt.org/getinvolved/
-[7]:mailto:sponsor@letsencrypt.org
diff --git a/translated/tech/20151104 How to Install Redis Server on CentOS 7.md b/translated/tech/20151104 How to Install Redis Server on CentOS 7.md
deleted file mode 100644
index eb872a2719..0000000000
--- a/translated/tech/20151104 How to Install Redis Server on CentOS 7.md
+++ /dev/null
@@ -1,236 +0,0 @@
-How to Install Redis Server on CentOS 7.md
-
-如何在CentOS 7上安装Redis 服务
-================================================================================
-
-大家好, 本文的主题是Redis,我们将要在CentOS 7 上安装它。编译源代码,安装二进制文件,创建、安装文件。然后安装组建,我们还会配置redis ,就像配置操作系统参数一样,目标就是让redis 运行的更加可靠和快速。
-
-
-
-Redis 服务器
-
-Redis 是一个开源的多平台数据存储软件,使用ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率。Redis 支持多种编程语言,包括Lua, C, Java, Python, Perl, PHP 和其他很多语言。redis 的代码量很小,只有约3万行,它只做很少的事,但是做的很好。尽管你在内存里工作,但是对数据持久化的需求还是存在的,而redis 的可靠性就很高,同时也支持集群,这儿些可以很好的保证你的数据安全。
-
-### 构建 Redis ###
-
-redis 目前没有官方RPM 安装包,我们需要从牙UN代码编译,而为了要编译就需要安装Make 和GCC。
-
-如果没有安装过GCC 和Make,那么就使用yum 安装。
-
- yum install gcc make
-
-从[官网][1]下载tar 压缩包。
-
- curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
-
-解压缩。
-
- tar zxvf redis-3.0.4.tar.gz
-
-进入解压后的目录。
-
- cd redis-3.0.4
-
-使用Make 编译源文件。
-
- make
-
-### 安装 ###
-
-进入源文件的目录。
-
- cd src
-
-复制 Redis server 和 client 到 /usr/local/bin
-
- cp redis-server redis-cli /usr/local/bin
-
-最好也把sentinel,benchmark 和check 复制过去。
-
- cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
-
-创建redis 配置文件夹。
-
- mkdir /etc/redis
-
-在`/var/lib/redis` 下创建有效的保存数据的目录
-
- mkdir -p /var/lib/redis/6379
-
-#### 系统参数 ####
-
-为了让redis 正常工作需要配置一些内核参数。
-
-配置vm.overcommit_memory 为1,它的意思是一直避免数据被截断,详情[见此][2].
-
- sysctl -w vm.overcommit_memory=1
-
-修改backlog 连接数的最大值超过redis.conf 中的tcp-backlog 值,即默认值511。你可以在[kernel.org][3] 找到更多有关基于sysctl 的ip 网络隧道的信息。
-
- sysctl -w net.core.somaxconn=512.
-
-禁止支持透明大页,,因为这会造成redis 使用过程产生延时和内存访问问题。
-
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
-
-### redis.conf ###
-Redis.conf 是redis 的配置文件,然而你会看到这个文件的名字是6379.conf ,而这个数字就是redis 监听的网络端口。这个名字是告诉你可以运行超过一个redis 实例。
-
-复制redis.conf 的示例到 **/etc/redis/6379.conf**.
-
- cp redis.conf /etc/redis/6379.conf
-
-现在编辑这个文件并且配置参数。
-
- vi /etc/redis/6379.conf
-
-#### 守护程序 ####
-
-设置daemonize 为no,systemd 需要它运行在前台,否则redis 会突然挂掉。
-
- daemonize no
-
-#### pidfile ####
-
-设置pidfile 为/var/run/redis_6379.pid。
-
- pidfile /var/run/redis_6379.pid
-
-#### port ####
-
-如果不准备用默认端口,可以修改。
-
- port 6379
-
-#### loglevel ####
-
-设置日志级别。
-
- loglevel notice
-
-#### logfile ####
-
-修改日志文件路径。
-
- logfile /var/log/redis_6379.log
-
-#### dir ####
-
-设置目录为 /var/lib/redis/6379
-
- dir /var/lib/redis/6379
-
-### 安全 ###
-
-下面有几个操作可以提高安全性。
-
-#### Unix sockets ####
-
-在很多情况下,客户端程序和服务器端程序运行在同一个机器上,所以不需要监听网络上的socket。如果这和你的使用情况类似,你就可以使用unix socket 替代网络socket ,为此你需要配置**port** 为0,然后配置下面的选项来使能unix socket。
-
-设置unix socket 的套接字文件。
-
- unixsocket /tmp/redis.sock
-
-限制socket 文件的权限。
-
- unixsocketperm 700
-
-现在为了获取redis-cli 的访问权限,应该使用-s 参数指向socket 文件。
-
- redis-cli -s /tmp/redis.sock
-
-#### 密码 ####
-
-你可能需要远程访问,如果是,那么你应该设置密码,这样子每次操作之前要求输入密码。
-
- requirepass "bTFBx1NYYWRMTUEyNHhsCg"
-
-#### 重命名命令 ####
-
-想象一下下面一条条指令的输出。使得,这回输出服务器的配置,所以你应该在任何可能的情况下拒绝这种信息。
-
- CONFIG GET *
-
-为了限制甚至禁止这条或者其他指令可以使用**rename-command** 命令。你必须提供一个命令名和替代的名字。要禁止的话需要设置replacement 为空字符串,这样子禁止任何人猜测命令的名字会比较安全。
-
- rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"
- rename-command FLUSHALL ""
- rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
-
-
-
-通过密码和修改命令来访问unix socket。
-
-#### 快照 ####
-
-默认情况下,redis 会周期性的将数据集转储到我们设置的目录下的文件**dump.rdb**。你可以使用save 命令配置转储的频率,他的第一个参数是以秒为单位的时间帧(译注:按照下文的意思单位应该是分钟),第二个参数是在数据文件上进行修改的数量。
-
-每隔15小时并且最少修改过一次键。
- save 900 1
-
-每隔5小时并且最少修改过10次键。
-
- save 300 10
-
-每隔1小时并且最少修改过10000次键。
-
- save 60 10000
-
-文件**/var/lib/redis/6379/dump.rdb** 包含了内存里经过上次保存命令的转储数据。因为他创建了临时文件并且替换了源文件,这里没有被破坏的问题,而且你不用担心直接复制这个文件。
-
-### 开机时启动 ###
-
-You may use systemd to add Redis to the system startup
-你可以使用systemd 将redis 添加到系统开机启动列表。
-
-复制init_script 示例文件到/etc/init.d,注意脚本名所代表的端口号。
-
- cp utils/redis_init_script /etc/init.d/redis_6379
-
-现在我们来使用systemd,所以在**/etc/systems/system** 下创建一个单位文件名字为redis_6379.service。
-
- vi /etc/systemd/system/redis_6379.service
-
-填写下面的内容,详情可见systemd.service。
-
- [Unit]
- Description=Redis on port 6379
-
- [Service]
- Type=forking
- ExecStart=/etc/init.d/redis_6379 start
- ExecStop=/etc/init.d/redis_6379 stop
-
- [Install]
- WantedBy=multi-user.target
-
-现在添加我之前在**/etc/sysctl.conf** 里面修改多的内存过分提交和backlog 最大值的选项。
-
- vm.overcommit_memory = 1
-
- net.core.somaxconn=512
-
-对于透明大页支持,并没有直接sysctl 命令可以控制,所以需要将下面的命令放到/etc/rc.local 的结尾。
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
-
-### 总结 ###
-
-这些足够启动了,通过设置这些选项你将足够部署redis 服务到很多简单的场景,然而在redis.conf 还有很多为复杂环境准备的redis 的选项。在一些情况下,你可以使用[replication][4] 和 [Sentinel][5] 来提高可用性,或者[将数据分散][6]在多个服务器上,创建服务器集群 。谢谢阅读。
---------------------------------------------------------------------------------
-
-via: http://linoxide.com/storage/install-redis-server-centos-7/
-
-作者:[Carlos Alberto][a]
-译者:[ezio](https://github.com/oska874)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]:http://linoxide.com/author/carlosal/
-[1]:http://redis.io/download
-[2]:https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
-[3]:https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
-[4]:http://redis.io/topics/replication
-[5]:http://redis.io/topics/sentinel
-[6]:http://redis.io/topics/partitioning