在RHEL 8/CentOS 8上安装和配置Redis服务器

时间:2020-02-23 14:32:16  来源:igfitidea点击:

如何在CentOS 8/RHEL 8上安装Redis?本教程将在RHEL 8/CentOS 8 Linux系统上安装和配置Redis服务器。 Redis是一个免费的开源内存中数据结构存储。它可用作数据库服务器,消息代理或者将数据缓存在内存中以加快检索速度。

Redis支持的数据结构是:具有范围查询的哈希表字符串排序的列表超级日志日志位图地理空间索引等

在RHEL 8/CentOS 8上安装Redis

RHEL 8上的Redis可在AppStream存储库中使用。

$yum module list redis
 Updating Subscription Management repositories.
 Updating Subscription Management repositories.
 Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
 Name                         Stream                         Profiles                          Summary                                                  
 redis                        4.0 [d]                        default [d]                       Redis persistent key-value database                      
 Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

从输出中可以看到,Redis 4.0在AppStream上可用。使用yum软件包管理器安装它。

sudo yum install -y @redis

安装软件包后,启动并启用Redis服务以在启动时启动。

sudo systemctl enable --now redis

服务状态应显示正在运行。

$sudo systemctl status redis
 ● redis.service - Redis persistent key-value database
    Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
   Drop-In: /etc/systemd/system/redis.service.d
            └─limit.conf
    Active: active (running) since Sat 2016-12-29 10:00:40 EAT; 5s ago
  Main PID: 30348 (redis-server)
     Tasks: 4 (limit: 11510)
    Memory: 6.4M
    CGroup: /system.slice/redis.service
            └─30348 /usr/bin/redis-server 127.0.0.1:6379
 Dec 29 10:00:40 rhel8.local systemd[1]: Starting Redis persistent key-value database…
 Dec 29 10:00:40 rhel8.local systemd[1]: Started Redis persistent key-value database.

在RHEL 8/CentOS 8上配置Redis服务器

现在已经安装了Redis服务器,接下来的部分是配置。我们可以设置许多可调参数以适合用例,但不适用于入门所需的基本设置。

启用Redis服务以侦听所有接口

默认情况下,Redis服务侦听127.0.0.1. 如果需要远程客户端连接到该服务,则允许该服务在所有网络接口上侦听。

$ss -tunelp | grep 6379
tcp   LISTEN  0    128   127.0.0.1:6379    0.0.0.0:*  users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->

用我们喜欢的文本编辑器打开文件/etc/redis.conf

sudo vim /etc/redis.conf

然后将下面的第69行绑定127.0.0.1更改为:

bind 0.0.0.0

进行更改后重新启动Redis

sudo systemctl  restart redis

确认新的绑定地址。

$ss -tunelp | grep 6379
 tcp   LISTEN  0    128   0.0.0.0:6379    0.0.0.0:*  users:(("redis-server",pid=30348,fd=6)) uid:986 ino:71091 sk:4 <->

配置Redis身份验证

配置Redis身份验证以使客户端在处理任何其他命令之前要求AUTH <PASSWORD>。

requirepass  <AuthPassword>

例:

requirepass StrongPassword

设置永久存储进行恢复

通过更改" appendonly"值玩具来设置持久性模式

appendonly yes
appendfilename "appendonly.aof"

进行更改后重新启动Redis服务

sudo systemctl restart redis

如果我们有活动的防火墙服务,请允许端口6379.

sudo firewall-cmd --add-port=6379/tcp --permanenent
sudo firewall-cmd --reload

检查redis服务状态:

$sudo systemctl status redis
 ● redis.service - Redis persistent key-value database
    Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
   Drop-In: /etc/systemd/system/redis.service.d
            └─limit.conf
    Active: active (running) since Sat 2016-12-29 10:11:56 EAT; 9s ago
   Process: 30485 ExecStop=/usr/libexec/redis-shutdown (code=exited, status=0/SUCCESS)
  Main PID: 30500 (redis-server)
     Tasks: 4 (limit: 11510)
    Memory: 6.4M
    CGroup: /system.slice/redis.service
            └─30500 /usr/bin/redis-server 0.0.0.0:6379
 Dec 29 10:11:56 rhel8.local systemd[1]: Stopped Redis persistent key-value database.
 Dec 29 10:11:56 rhel8.local systemd[1]: Starting Redis persistent key-value database…
 Dec 29 10:11:56 rhel8.local systemd[1]: Started Redis persistent key-value database.

连接到Redis

确认我们可以在本地连接到Redis Server:

$redis-cli
127.0.0.1:6379> INFO
 NOAUTH Authentication required.

测试验证:

127.0.0.1:6379> AUTH <AuthPassword>
OK

我们应该在输出中收到OK。如果输入了错误的密码,则身份验证将失败:

127.0.0.1:6379> AUTH WrongPassword
(error) ERR invalid password

检查redis信息。

127.0.0.1:6379>  INFO

这将输出一长串数据。我们可以通过将Section作为参数来限制输出。例如。

127.0.0.1:6379> INFO Server
 Server
 redis_version:4.0.10
 redis_git_sha1:00000000
 redis_git_dirty:0
 redis_build_id:fdf31b4ab3504500
 redis_mode:standalone
 os:Linux 4.18.0-32.el8.x86_64 x86_64
 arch_bits:64
 multiplexing_api:epoll
 atomicvar_api:atomic-builtin
 gcc_version:8.2.1
 process_id:30500
 run_id:d8c5ba56a0735a6831a0b3467c3efa95ac174cdd
 tcp_port:6379
 uptime_in_seconds:222
 uptime_in_days:0
 hz:10
 lru_clock:2563866
 executable:/usr/bin/redis-server
 config_file:/etc/redis.conf

执行Redis基准测试

针对本地Redis,使用具有10个并行连接的基准测试,总共有10万个请求,以测试其性能。

# redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 10
..................................................
100.00% <= 0 milliseconds
 85470.09 requests per second
 ====== LRANGE_500 (first 450 elements) ======
   100000 requests completed in 1.17 seconds
   10 parallel clients
   3 bytes payload
   keep alive: 1
 100.00% <= 0 milliseconds
 85397.09 requests per second
 ====== LRANGE_600 (first 600 elements) ======
   100000 requests completed in 1.18 seconds
   10 parallel clients
   3 bytes payload
   keep alive: 1
 100.00% <= 0 milliseconds
 84530.86 requests per second
 ====== MSET (10 keys) ======
   100000 requests completed in 1.18 seconds
   10 parallel clients
   3 bytes payload
   keep alive: 1
 100.00% <= 0 milliseconds
 84961.77 requests per second

有关更多选项和示例,请使用:

$redis-benchmark --help

要显示已连接的客户端,请使用:

127.0.0.1:6379> client list 
 id=185 addr=127.0.0.1:54300 fd=8 name= age=75 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

在Python中使用Redis

要将redis与Python一起使用,请安装Python Redis Client Library:

sudo yum -y install  python-redis

在PHP中使用Redis

要使用PHP连接到Redis服务器,请安装PHP Redis客户端模块。

sudo yum -y install php-pecl-redis