Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis 8.0.3 编译安装

Redis8.0.3编译化安装的实现

作者:玻鬃

本文主要介绍了Redis8.0.3编译化安装的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前置

原服务器已部署redis

1.docker 部署的redis卸载

停止后,先别急着删除容器,待编译化安装完成后 在移除

# 停止redis服务
docker stop redis #redis名称是当时部署设置的名称


# 删除容器
docker rm redis

2.apt-get 安装的redis卸载

命令会删除redis-server 软件包,和不再需要的其他相关软件包(因为 `--auto-remove` 参数)。它还会删除 redis-server 的本地/配置文件(因为 `purge` 参数)

sudo apt-get purge --auto-remove redis-server

3.makefile 编译安装的卸载

3.1.停止已经启动的redis 容器

sudo service redis_6379 stop

3.2 删除 `usr/local/bin/` 中所有 redis 相关的文件

sudo rm -r /etc/redis/

3.3 删除配置目录和内容

sudo rm -r /etc/redis/

3.4删除日志

sudo rm /var/log/redis_*

3.5删除数据目录和内容

sudo rm -r /var/lib/redis/

3.6删除初始化脚本

sudo rm /etc/init.d/redis_*

3.7删除现有的Redis PID文件(仅当存在时)

sudo rm /var/run/redis_*

Redis 编译化安装

1.创建目录并下载redis

# 创建对应的文件目录
mkdir -p /usr/local/redis /usr/local/redis/install
# 到对应的目录下
cd /usr/local/redis
# 下载redsi 8.0.3压缩包
wget https://download.redis.io/releases/redis-8.0.3.tar.gz

2.解压缩 redis安装包

tar -zxf redis-8.0.3.tar.gz -C /usr/local/redis

3.安装redis的编译环境

yum -y install gcc automake autoconf libtool make gcc-c++

4.编译安装redis

#到redis的解压目录下
cd /usr/local/redis/redis-8.0.3

# 第一次编译,编译redis的代码,生成必要的中间文件(校验原代码)
make

# 第二次编译 确保所有依赖项(如 jemalloc)被正确编译并链接到 Redis 的主二进制文件中
make install PREFIX=/usr/local/redis/install

5.测试是否可以启动

/usr/local/redis/install/bin/redis-server  /usr/local/redis/redis-8.0.3/redis.conf

出现下面的界面就是正常的

6.更换配置文件

# 绑定IP地址,0.0.0.0表示监听所有网络接口
bind 0.0.0.0

# 是否启用保护模式(yes-只允许本地访问,no-允许外部访问)
protected-mode yes

# 服务监听端口号
port 6379

# 客户端访问密码
requirepass herodoo

# TCP连接队列长度,高并发场景建议增大
tcp-backlog 511

# 客户端空闲超时时间(0表示不关闭连接)
timeout 0

# TCP keepalive间隔时间(秒)
tcp-keepalive 300

# 是否以守护进程方式运行(yes-后台运行)
daemonize yes

# 进程ID文件存储路径
pidfile /var/run/redis_6379.pid

# 日志级别(debug/verbose/notice/warning)
loglevel notice

# 日志文件路径(空字符串表示输出到标准输出)
logfile ""

# 数据库数量(默认16个,这里设置为10)
databases 10

# 是否显示Redis logo(no-不显示)
always-show-logo no

# 是否在进程标题中显示Redis信息
set-proc-title yes

# 进程标题模板格式
proc-title-template "{title} {listen-addr} {server-mode}"

# 系统本地化设置(空表示使用系统默认)
locale-collate ""

# RDB保存出错时是否停止写入(防止数据不一致)
stop-writes-on-bgsave-error yes

# 是否压缩RDB文件(yes-压缩节省空间)
rdbcompression yes

# 是否校验RDB文件(yes-增加CRC64校验和)
rdbchecksum yes

# RDB快照文件名
dbfilename dump.rdb

# 主从同步时是否删除临时RDB文件(no-保留)
rdb-del-sync-files no

# 数据存储目录(./表示当前目录)
dir ./

# 从库是否继续服务旧数据当同步中断时(yes-继续)
replica-serve-stale-data yes

# 从库是否只读(yes-防止意外写入)
replica-read-only yes

# 是否使用无盘同步(yes-主库直接通过socket发送RDB)
repl-diskless-sync yes

# 无盘同步延迟时间(秒,等待更多从库连接)
repl-diskless-sync-delay 5

# 无盘同步最大从库数量(0-不限制)
repl-diskless-sync-max-replicas 0

# 从库加载RDB方式(disabled-禁用无盘加载)
repl-diskless-load disabled

# 是否禁用TCP_NODELAY(no-启用减少延迟)
repl-disable-tcp-nodelay no

# 从库优先级(主库故障时选举顺序)
replica-priority 100

# ACL日志最大长度
acllog-max-len 128



# 内存淘汰时是否异步释放内存
lazyfree-lazy-eviction no
# 过期键删除是否异步
lazyfree-lazy-expire no
# 服务端删除命令是否异步
lazyfree-lazy-server-del no
# 从库接收RDB后是否异步刷新数据
replica-lazy-flush no

# 用户DEL命令是否异步
lazyfree-lazy-user-del no

# FLUSH命令是否异步
lazyfree-lazy-user-flush no

# 是否调整OOM分数(防止被系统kill)
oom-score-adj no
# OOM分数调整值(不同角色不同权重)
oom-score-adj-values 0 200 800

# 是否禁用透明大页(yes-避免延迟问题)
disable-thp yes

# 是否启用AOF持久化(no-仅RDB)
appendonly no

# AOF文件名
appendfilename "appendonly.aof"

# AOF文件目录名(多文件AOF时使用)
appenddirname "appendonlydir"

# AOF同步策略(everysec-每秒同步)
appendfsync everysec

# AOF重写期间是否同步写入(no-同步)
no-appendfsync-on-rewrite no

# AOF重写触发条件(比上次大100%且超过64MB)
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

# 是否加载被截断的AOF文件(yes-继续)
aof-load-truncated yes

# AOF是否使用RDB前导(混合持久化)
aof-use-rdb-preamble yes

# AOF是否记录时间戳(no-不记录)
aof-timestamp-enabled no

# 慢查询阈值(微秒,10000=10毫秒)
slowlog-log-slower-than 10000

# 慢查询日志最大长度
slowlog-max-len 128

# 延迟监控阈值(0-禁用监控)
latency-monitor-threshold 0

# 键空间通知配置(空字符串-禁用)
notify-keyspace-events ""

# Hash类型优化参数
hash-max-listpack-entries 512
hash-max-listpack-value 64

# List类型优化参数(-2表示特殊编码)
list-max-listpack-size -2
# List压缩深度(0-不压缩)
list-compress-depth 0

# Set类型优化参数
set-max-intset-entries 512
set-max-listpack-entries 128
set-max-listpack-value 64

# Zset类型优化参数
zset-max-listpack-entries 128
zset-max-listpack-value 64

# HyperLogLog稀疏表示最大字节数
hll-sparse-max-bytes 3000

# Stream类型节点参数
stream-node-max-bytes 4096
stream-node-max-entries 100

# 是否主动rehash(yes-每100ms rehash)
activerehashing yes

# 客户端输出缓冲区限制
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

# 后台任务执行频率(1-500,默认10)
hz 10

# 是否动态调整hz值(根据客户端数量)
dynamic-hz yes

# AOF重写时是否增量同步(减少磁盘IO)
aof-rewrite-incremental-fsync yes

# RDB保存时是否增量同步
rdb-save-incremental-fsync yes

# 是否启用jemalloc后台线程
jemalloc-bg-thread yes

7.配置环境变量

vim /etc/profile

新增以下内容:

REDIS_HOME=/usr/local/redis/install
PATH=$PATH:$REDIS_HOME/bin

使配置生效

source /etc/profile

8.设置开机自启

cd /usr/lib/systemd/system
touch redis.service
vi redis.service
[Unit]
Description=redis-server
After=network.target
 
[Service]
Type=forking
# 当前需要绝对路径
ExecStart=/usr/local/redis/install/bin/redis-server  /usr/local/redis/redis-8.0.3/redis.conf
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
#重载系统服务
systemctl daemon-reload
#设置开机自启
systemctl enable redis.service
#取消开机自启
systemctl disable redis.service
#启动服务
systemctl start redis.service
#停止服务
systemctl stop redis.service
#查看服务状态
systemctl status redis.service
#查看是否运行
ps -aux | grep redis
#检查进程是否存在
ps -ef | grep redis
#检查端口是否监听
netstat -anlp | grep 6379

到此这篇关于Redis8.0.3编译化安装的实现的文章就介绍到这了,更多相关Redis 8.0.3 编译安装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文