阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

玩转Rocky Linux 9 部署Redis指南

510次阅读
没有评论

共计 5803 个字符,预计需要花费 15 分钟才能阅读完成。

玩转 Rocky Linux 9 部署 Redis 指南

大家好,我是星哥。今天,咱们来盘一盘 Redis,Redis 作为高性能的键值数据库,在缓存、消息队列、实时数据处理等场景中扮演着举足轻重的角色。

 

功能介绍

功能介绍:Rocky Linux 9 系统中源码包安装 Redis 的 shell 脚本

安装版本:redis-7.4.1

端口:63920

配置所在的目录:/data/conf/

密码:YpassWord666【请修改密码】

redis 持久化目录:/data/redis/ 端口号

redis 日志:/data/redis/ 端口号 /redis_端口号.log

玩转 Rocky Linux 9 部署 Redis 指南

快速安装

 使用:
gitee:
wget https://gitee.com/funet8/Rocky-Linux-Shell/raw/main/shell/Rocky_Linux_9_Install_Redis.sh
sh Rocky_Linux_9_Install_Redis.sh

github:
wget https://raw.githubusercontent.com/funet8/Rocky-Linux-Shell/refs/heads/main/shell/Rocky_Linux_9_Install_Redis.sh
sh Rocky_Linux_9_Install_Redis.sh

1. 安装依耐

dnf groupinstall  -y"Development Tools"
dnf install -y gcc jemalloc-devel tcl 

2. 新建目录

mkdir -p /data/software/
mkdir -p /data/conf/
cd /data/software/

3. 下载安装包

解压并安装


# 去这里查找 http://download.redis.io/releases/
# 官方下载地址:
wget http://download.redis.io/releases/redis-7.4.1.tar.gz
tar -zxf redis-7.4.1.tar.gz
cd redis-7.4.1
make
cd src && make test
make install

4. 配置 redis

开机启动文件

mkdir /etc/init.d/
cp /data/software/redis-7.4.1/utils/redis_init_script /etc/init.d/redis_63920
# 修改配置文件:
sed -i "s/REDISPORT\=6379/REDISPORT\=63920/g" /etc/init.d/redis_63920
sed -i "s/\/etc\/redis\//\/data\/conf\//g" /etc/init.d/redis_63920

 启动 redis、开机自启动 
/etc/init.d/redis_63920 start
echo "/etc/init.d/redis_63920 start" >> /etc/rc.d/rc.local

配置文件

# 创建目录 
mkdir -p /data/conf/
cp /data/software/redis-7.4.1/redis.conf  /data/conf/63920.conf

cat > /data/conf/63920.conf << EOFI
# 绑定的主机地址,默认:bind 127.0.0.1
bind 0.0.0.0
# 端口 
port 63920
# TCP 监听的最大容纳数量 
# 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。
# Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对应的值,
# 所以你要修改这两个值才能达到你的预期。
tcp-backlog 511
# 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)
timeout 20
# tcp 心跳包。
# 如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。
# 这个之所有有用,主要由两个原因:
# 1) 防止死的 peers
# 2) Take the connection alive from the point of view of network
#    equipment in the middle.
# 推荐一个合理的值就是 60 秒 
tcp-keepalive 60
# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。
# 当 redis 作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。
daemonize yes
# 可以通过 upstart 和 systemd 管理 Redis 守护进程,这个参数是和具体的操作系统相关的。
supervised no
# 当 redis 以守护模式启动时指定 pid
pidfile /var/run/redis_63920.pid
#loglevel 日志级别 
#debug--> 记录大量日志信息,适用于开发、测试阶段 
#verbose--> 较多日志信息 
#notice--> 适量日志信息,使用于生产环境 
#warning--> 仅有部分重要、关键信息才会被记录 
loglevel notice
# 日志文件的位置 
logfile "/data/conf/redis_63920.log"
# 设置数据库的数目 
databases 16
# 保存数据到磁盘。格式是:save <seconds> <changes>,含义是在 seconds 秒之后至少有 changes 个 keys 发生改变则保存一次。
# 默认设置意思是:在 60 秒之内有 10000 个 keys 发生变化时、在 300 秒之内有 10 个 keys 发生了变化、在 900 秒之内有 1 个 keys 发生了变化,则镜像备份。
save 900 1
save 300 10
save 60 10000
# 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,否则就会没人注意到灾难的发生。如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
stop-writes-on-bgsave-error yes
# 是否在 dump  .rdb 数据库的时候压缩字符串,默认设置为 yes。如果你想节约一些 cpu 资源的话,可以把它设置为 no,这样的话数据集就可能会比较大。
rdbcompression yes
# 是否 CRC64 校验 rdb 文件,会有一定的性能损失(大概 10%)。
rdbchecksum yes
#rdb 文件 
dbfilename dump.rdb
# 数据库存放目录。必须是一个目录,aof 文件也会保存到该目录下。
dir /data/conf/
# 设置本机为 slave 服务。格式:slaveof <masterip> <masterport>。设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步 
# slaveof  192.168.1.3  6379
# slaveof <masterip> <masterport>
# 当 master 服务设置了密码保护时,slave 服务连接 master 的密码。
#masterauth
# 当一个 slave 与 master 失去联系时,或者复制正在进行的时候,slave 应对请求的行为:1) 如果为 yes(默认值),slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候;2) 如果为 no,在你执行除了 info 和 salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误。
slave-serve-stale-data yes
# 设置 slave 是否是只读的。从 2.6 版起,slave 默认是只读的。
slave-read-only yes
# 主从数据复制是否使用无硬盘复制功能。
repl-diskless-sync no
repl-diskless-sync-delay 5
# 指定向 slave 同步数据时,是否禁用 socket 的 NO_DELAY 选 项。若配置为“yes”,则禁用 NO_DELAY,则 TCP 协议栈会合并小包统一发送,这样可以减少主从节点间的包数量并节省带宽,但会增加数据同步到 slave 的时间。若配置为“no”,表明启用 NO_DELAY,则 TCP 协议栈不会延迟小包的发送时机,这样数据同步的延时会减少,但需要更大的带宽。通常情况下,应该配置为 no 以降低同步延时,但在主从节点间网络负载已经很高的情况下,可以配置为 yes。
repl-disable-tcp-nodelay yes
# 当 master 不能正常工作的时候,Redis Sentinel 会从 slaves 中选出一个新的 master,这个值越小,就越会被优先选中,但是如果是 0,那是意味着这个 slave 不可能被选中。默认优先级为 100。
slave-priority 100
# 设置 redis 连接密码。
requirepass YpassWord666
# 是否启用 aof 持久化方式。即是否在每次更新操作后进行日志记录,默认配置是 no,即在采用异步方式把数据写入到磁盘,如果不开启,可能会在断电时导致部分数据丢失。
appendonly no
# 更新日志文件名,默认值为 appendonly.aof。
appendfilename "appendonly.aof"
#aof 文件刷新的频率。有三种:
#no 依靠 OS 进行刷新,redis 不主动刷新 AOF,这样最快,但安全性就差。
#always 每提交一个修改命令都调用 fsync 刷新到 AOF 文件,非常非常慢,但也非常安全。
#everysec 每秒钟都调用 fsync 刷新到 AOF 文件,很快,但可能会丢失一秒以内的数据。
appendfsync everysec
# 指定是否在后台 aof 文件 rewrite 期间调用 fsync,默认为 no,表示要调用 fsync(无论后台是否有子进程在刷盘)。Redis 在后台写 RDB 文件或重写 AOF 文件期间会存在大量磁盘 IO,此时,在某些 linux 系统中,调用 fsync 可能会阻塞。
no-appendfsync-on-rewrite no
# 当 AOF 文件增长到一定大小的时候 Redis 能够调用 BGREWRITEAOF 对日志文件进行重写。当 AOF 文件大小的增长率大于该配置项时自动开启重写。
auto-aof-rewrite-percentage 100
# 当 AOF 文件增长到一定大小的时候 Redis 能够调用 BGREWRITEAOF 对日志文件进行重写。当 AOF 文件大小大于该配置项时自动开启重写。
auto-aof-rewrite-min-size 64mb
#redis 在启动时可以加载被截断的 AOF 文件,而不需要先执行 redis-check-aof 工具。
aof-load-truncated yes
# 一个 Lua 脚本最长的执行时间,单位为毫秒,如果为 0 或负数表示无限执行时间,默认为 5000。
lua-time-limit 5000
# 设定执行时间,单位是毫秒,执行时长超过该时间的命令将会被记入 log。- 1 表示不记录 slow log; 0 强制记录所有命令 
slowlog-log-slower-than 10000
#slow log 的长度。最小值为 0。如果日志队列已超出最大长度,则最早的记录会被从队列中清除。
slowlog-max-len 128
# 服务端内部的延迟监控, 设置一个合理的阈值,如设置 100ms
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# 最大内存设置,默认为 0, 表示 "无限制", 推荐为物理内存的 3 /4, 此配置需要和 "maxmemory-policy" 配合使用, 当 redis 中内存数据达到 maxmemory 时, 触发 "清除策略"
maxmemory 1024mb
# 内存不足 "时, 数据清除策略, 默认为"volatile-lru"。
maxmemory-policy volatile-lru
# 限制同时连接的客户端数量,不易过大具体多少根据具体情况而定 
maxclients 30000
EOFI

5. 防火墙放开端口

###############4. 防火墙开启端口 
# 允许端口 
firewall-cmd --zone=public --add-port=63920/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

# 查看 redis 版本 
redis-cli --version

6. 连接 redis

redis-cli -h IP 地址 -p 端口 -a 密码 
 例如:
redis-cli -h 127.0.0.1 -p 63920 -a YpassWord666

关闭 redis

# 关闭 redis
redis-cli -h IP 地址 -p 端口 -a 密码 shutdown

 例如:
redis-cli -h 127.0.0.1 -p 63920 -a YpassWord666 shutdown

至此,现在你已经在 Rocky Linux 9 上成功安装并配置了 Redis。

最后

写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;也别忘了关注星哥玩云!这里有满满的干货分享,还有轻松有趣的技术交流~点个赞、分享给身边的小伙伴,一起成长,一起玩转技术世界吧!😊

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2025-07-21发表,共计5803字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中