1.下载 && 减压
wget http://download.redis.io/releases/redis-6.2.14.tar.gz
tar -zvxf redis-6.2.14.tar.gz
2.编译(分开运行)
cd redis-6.2.14
make
cd src
make install
安装目录展示
3.redis.conf 配置更改
daemonize yes
supervised systemdbind 0.0.0.0
dir /usr/local/redisdb
密码可自行添加
dir 默认是 ./ 这个是持久化文件,会去etc创建dump.rdb文件储存数据
我这里建了自己想要的一个目录
注意: 如果更改了dir 必须在对应路径创建好文件夹和rdis的用户和用户组写入权限
3.1 关于supervised的解释
supervised no
: 这意味着 Redis 不会以任何守护进程方式运行,也就是说它不会在后台运行。这通常用于开发和调试,因为在这种模式下,你可以看到 Redis 的所有输出在终端上。
supervised systemd
: 这是在系统中启用 systemd 管理的方式。在这种模式下,你会使用类似systemctl
的 systemd 工具来启动、停止和管理 Redis 服务。这也允许 Redis 在后台运行。
supervised upstart
: 类似于supervised systemd
,这是在使用 Upstart 作为 init 系统的系统上的一种方式。
4.配置自启动
去 cd /etc/systemd/system 下新建 mkdir redis.service文件,并添加以下内容
[Unit]
Description=Redis #描述内容
#在哪些服务启动之后启动
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
#PIDFile和redis.conf配置中一致
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis-6.2.14/src/redis-server /usr/local/redis-6.2.14/redis.conf --supervised systemd
#重新加载和停止服务的命令
ExecReload=/bin/kill -s HUP $MAINPID
#ExecStop=/bin/kill -s QUIT $MAINPID
ExecStop=/usr/bin/redis-cli -p 6379 -a shutdown
PrivateTmp=true
#系统以默认多用户方式启动时,此服务自动运行。
[Install]
#Alias:服务别名
WantedBy=multi-user.target
注意:如果安装其他的版本,可能文件目录都不同
如果在redis.conf中配置了supervised systemd 需要在启动后面加上--supervised systemd
5.systemctl 命令
systemctl daemon-reload # 加载服务配置文件
systemctl enable redis # 开机自启redis服务
//先运行以上命令
systemctl disable redis # 取消开机自启
systemctl start redis.service # 启动redis服务
systemctl stop redis.service # 停止服务
systemctl restart redis.service # 重新启动服务
systemctl status redis.service # 查看服务当前状态
systemctl list-units --type=service # 查看所有已启动的服务
注意:手痒,我看日志文件没有创建我就手动创建,然后我想着快照也没有创建,我结果去创建导致启动失败(会自动创建而且我类型创建错了)
5.1查询配置是否生效
我就是在这个问题卡了很久,因为之前装过,可能没删干净
redis-cli 进入redis 我redis没有设置密码
config get logfile 查询日志配置路径
config get dir 快照存储路径
config set logfile "/var/log/redis.log" 这个命令我没有成功
6.redis.conf所有配置
bind 0.0.0.0protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised systemdpidfile /var/run/redis_6379.pid
loglevel notice
# 日志文件路径
logfile /usr/local/redis-6.2.14/redis.log
databases 16always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /usr/local/redisdb
maxmemory 2GBreplica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync norepl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush nolazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj nooom-score-adj-values 0 200 800
disable-thp yesappendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yesaof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0notify-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 512zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000stream-node-max-bytes 4096
stream-node-max-entries 100activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60hz 10
dynamic-hz yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
7.彻底删除redis
systemctl stop redis.service
yum remove redis //可能没有yum命令,可以找资料安装
rm -rf /etc/sysemd/system/redis.service
rm -rf /usr/local/redis*
rm -rf /usr/bin/redis*
日志和快照就自己看配置文件删除了
清除redis用户和用户组
userdel redis
groupdel redis