在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