在RHEL 8/CentOS 8上安装和配置Redis服务器
如何在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