如何再CentOS 7安装Redis

目的

Redis作为一个开源数据库,处理速度较快,因为所有数据都可保存至内存,这是开发实时数据处理类应用程序的最佳解决方案之一。

本教程将详细介绍如何在Linux CentOS 7发服务器上安装和配置Redis数据库,以及提高数据库安全性和创建副本等。 首先,您需要通过SSH连接连接到服务器。若是本地服务器,请記得打开服务器的终端。

安装Redis

为安装Redis,请先使用yum的方式下载:

sudo yum install redis

当下载完成后,请打开下载包,并启动安装。

sudo systemctl start redis
sudo systemctl enable redis

检查

为验证Redis的安装正确,需使用Redis -cli命令行客户端,在数据库中设置一个测试值

$ redis-cli set test 123456

OK
如果操作正确,您可以看到服务器回复“OK”。请记得检查该值与测试值是否一致。

$ redis-cli get test
"123456"

Redis将返回刚刚保存的值(在此案例中,字符串为“123456”)。然后记得删除此次测试。

$ redis-cli del test
(integer) 1

提高安全性

Redis初始配置下,允许只从本地地址连接到数据库,而不需要任何密码或认证形式。所有设置都是通过/etc/ Redis .conf中的配置文件读取的,并且可以通过使用任何客户端软件的CONFIG SET / CONFIG GET命令,在任何时间和实时覆盖。

但是,客户端修改的设置不会保存在配置文件中,在下次启动Redis时即会丢失。 为提高数据库安全性,可以通过修改或插入配置文件中的requirepass条目来设置身份验证密码:

requirepass 5eMX822gZ0lCGdd81rSIrTvPCUfeEFYAUIgyJNs4

密码保存在明文配置文件中,必须足够长的时间来抵御暴力攻击,因为Redis能够每秒处理多个连接。最重要的设置中,还需要绑定,设置地址上的Redis必须启用连接接收:

bind 127.0.0.1

默认启用本地地址127.0.0.1。如果需要对外公开Redis服务器,可以添加额外的地址,例如:

bind 127.0.0.1 51.125.63.201

另一个常见的错误是保留用于侦听传入连接的默认端口设置。这意味允许任何端口扫描软件定位Redis服务器:

port 2589

通过将端口从6379改为2589,Redis则可以被隐藏,并为您的安装增加了额外的安全级别。

完成对配置文件的所有修改后,请重启:

$ sudo systemctl restart redis

请检查刚刚应用的参数,使用redis-cli获取当前绑定参数,使用新配置的端口和上面设置的密码:

$ redis-cli -a 5eMX822gZ0lCGdd81rSIrTvPCUfeEFYAUIgyJNs4 -p 2589 config get bind

服务器应该响应所需的参数:

1) "bind"
 2) "127.0.0.1"

创建复制品安装

Redis也能夠允许在几个步骤中配置一个副本服务器。与主版本相比,这个副本服务器是实时更新的。通过此配置,可以提供主服务器故障时读取数据的备份服务。
连接到备用服务器后,請使用yum完成Redis的安装:

$ sudo yum install redis

同样的安全程序在前面的段落可以应用到保护这个Redis实例。在下面的示例中,将使用默认参数。为了与主服务器同步,副本必须与主机正确通信。确保公共IP地址出现在主机器的配置中(bind参数),并通过从机器启动命令来检查连接是否正常:

$ redis-cli -h [MASTER_IP_ADDRESS] -a [PASSWORD_MASTER] ping

PONG
如果对ping命令有响应,则是说明机能够正常通信。
然后,在配置文件/etc/redis.conf中修改以下参数,可继续进行slave的实际配置:

# If it is there, specify the master connection password too.
masterauth password
# The slaveof directory specifies the master connection parameters (ADDRESS_IP PORT)
slaveof 195.231.4.71 6379

完成后,保存配置并启动Redis从服务器,请输入:

$ sudo systemctl start redis
$ sudo systemctl enable redis

这时您可以检查同步是否被正确激活,使用tail来查看服务日志文件的最后几行:

$ tail /var/log/redis/redis.log

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: receiving 77 bytes from master

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Flushing old data

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Loading DB in memory

6345:S 02 Jul 10:53:46.695 * MASTER <-> SLAVE sync: Finished with success

最后几行即是确认正常工作。
然后,执行一个测试,在数据库中设置一个值,并检查主服务器是否正确读取了该值。
从主服务器设置测试密钥:

$ redis-cli -a password set test hello
OK

读取从属服务器的相同值:

$ redis-cli get test
"hello"

正如你所看到的,主站和从站都存储了相同的值。这意味着复制工作是正确的!

您的免费试用从这里开始!
联系我们的团队申请物理服务器服务!
注册成为会员,尊享专属礼遇!
您的免费试用从这里开始!
联系我们的团队申请物理服务器服务!
注册成为会员,尊享专属礼遇!
Telegram Skype