Centos8 安装 Redis6.0.16
2023-03-07 09:39:05 时间
下载,解压,编译,安装
安装至 /opt/redis/redis-6.0.16 目录
tar xvf redis-6.0.16.tar.gz
gcc --version
cd redis-6.0.16/
yum install tcl
make
make test
make PREFIX=/opt/redis/redis-6.0.16 install
配置文件
cd /opt/redis/
ln -s redis-6.0.16 latest
cd /opt/redis/redis-6.0.16
mkdir conf
# 复制配置文件模板
cp ~/backup/redis-6.0.16/redis.conf conf/redis_6379.conf
cd conf/
# 修改配置文件
vi redis_6379.conf
涉及到的改动
cat /opt/redis/latest/conf/redis_6379.conf | grep -v '^$'|grep -v '^#'|grep -v '^;'
bind 192.168.255.4 #改了
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes #改了, 这边不论设置yes/no, 日志都会输出到日志文件, 所以直接yes吧
supervised no
pidfile /run/redis_6379.pid #改了
loglevel notice
logfile "/var/log/redis_6379.log" #改了
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /data/redis/db/ #改了
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass what.1234 #改了
修改系统参数
修改 somaxconn
vi /etc/sysctl.d/99-sysctl.conf
# 最后增加两行
net.core.somaxconn = 1024
vm.overcommit_memory = 1
# 增加结束
sysctl -p
transparent_hugepage
vi /etc/rc.local
# 最后增加两行
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 增加结束
cd /etc/
# chmod+x 后, 启动才会执行
chmod +x rc.local
重启确认设置成功
reboot
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
添加到系统服务
复制服务模板
# 实际上这个systemd-redis_server.service 不好用, 最后加上`Type=forking`才成功启动
cd /usr/lib/systemd/system
cp ~/backup/redis-6.0.16/utils/systemd-redis_server.service redis.service
vi redis.service
systemctl enable redis
systemctl start redis
systemctl status redis
服务文件 /usr/lib/systemd/system/redis.service 内容
[Unit]
Description=Redis data structure server
Documentation=https://redis.io/documentation
#Before=your_application.service another_example_application.service
#AssertPathExists=/var/lib/redis
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
ExecStart=/opt/redis/latest/bin/redis-server /opt/redis/latest/conf/redis_6379.conf
#ExecStop=/opt/redis/latest/bin/redis-cli -p 6379 shutdown
PrivateTmp=yes
LimitNOFILE=10032
NoNewPrivileges=yes
[Install]
WantedBy=multi-user.target
其中
- 不需要设置ExecStop, 因为配置加了口令, 这个命令执行不会成功
- Wants和After要使用
network-online.target
, 否则开机启动会产生这样的错误
900:C 17 Oct 2021 22:24:14.717 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
900:C 17 Oct 2021 22:24:14.720 # Redis version=6.0.16, bits=64, commit=00000000, modified=0, pid=900, just started
900:C 17 Oct 2021 22:24:14.721 # Configuration loaded
900:M 17 Oct 2021 22:24:14.721 # Could not create server TCP listening socket 192.168.255.4:6379: bind: Cannot assign requested address
相关文章
- 面向无服务器开发人员的 24 种开源工具:第 2 部分
- AWS 上的半导体设计工作流程(入门博客)
- 使用 Apache Airflow、Genie 和 Amazon EMR 编排大数据工作流:第 1 部分
- AWS 被评为 Gartner’s 云人工智能开发人员服务魔力象限的领导者
- Amazon EMR 推出适用于 Apache Spark 的 EMR Runtime
- java socket编程
- 了解最新的 AWS 精英,包括首批物联网精英!
- 通过 Amazon EFS 对 NFS 文件系统权限进行细粒度控制
- Amazon Transcribe 现已推出自动对个人身份信息进行密文标记的功能
- 适用于 AWS Lambda 的 Dart 运行时简介
- Amazon FSx for Lustre 更新:用于长期高性能工作负载的持久性存储
- AWS 推出面向初创公司的 Activate Founders 权益包 ?
- 在 AWS 中国区对 Amazon Elasticsearch Kibana 进行身份认证的解决方案
- 送你一个编程教练可好?你应当了解的 Amazon CodeGuru
- DynamoDB Accelerator(DAX)服务–无需改写应用,将 DynamoDB 的响应时间从毫秒提升到微秒
- 使用 Amazon Redshift 设计数据湖架构的 ETL 和 ELT 模式:第 2 部分
- 使用 Amazon Redshift 设计数据湖架构的 ETL 和 ELT 模式:第 1 部分
- 如何将 AWS Lambda 与 Spinnaker 集成
- 新功能 – 适用于预置 IOPS (io1) Amazon EBS 卷的多挂载功能
- 借助 AWS IoT Greengrass Docker Application Deployment 连接器将容器应用部署到 IoT 边缘