reids 源码安装
一、安装
1 下载最新 redis
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2 解压
tar -zxvf redis-6.2.6.tar.gz
3 将解压后的文件移至 /usr/local
mv redis-6.2.6 /usr/local
4 编译
yum install tcl -y
cd /usr/local/redis-6.2.6
make
5 测试
# 测试前先安装tcl
make test
6 安装
make install
二、配置开机启动
1 拷贝文件
cp redis.conf /etc/
2 修改配置
vim /etc/redis.conf
daemonize yes ## 若使用开机启动,生成pid,该项必须设置为诶yes,否则redis将不能够正常执行开机启动(systemctl start redis,执行后一直卡着,直到超时)
bind 127.0.0.1 ##注释掉,允许所有其他ip访问,真实使用最好坐下限制,只允许某些主机访问
dir /data/redis/ ## db保存路径,由于db持久化到磁盘,占用空间可能比较大,所以选择比较打的文件夹设置
requirepass 12345 ##设置密码
:x
# 保存退出
3 在/usr/lib/systemd/system/
下创建 redis.service
,并添加一下内容
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis.conf --protected-mode no
ExecStop=/usr/local/bin/redis-cli shutdown
#Restart=always
Type=forking
#User=redis
#Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
字段解释
no(默认值):退出后不会重启
on-success:只有正常退出时(退出状态码为0),才会重启
on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
on-abnormal:只有被信号终止和超时,才会重启
on-abort:只有在收到没有捕捉到的信号终止时,才会重启
on-watchdog:超时退出,才会重启
always:不管是什么退出原因,总是重启
type
simple(默认值):ExecStart字段启动的进程为主进程
forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程
oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务
dbus:类似于simple,但会等待 D-Bus 信号后启动
notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务
idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合
systemctl enable redis # 使配置生效
systemctl start redis # 启动redis服务
systemctl restart redis # 重启redis服务
systemctl stop redis # 停止redis服务
可选配置
vim /etc/sysctl.conf
添加以下配置
vm.overcommit_memory=1
net.core.somaxconn = 1024
使配置生效
sysctl -p
进制内核中启用Transparent Huge Pages(THP)支持,防止Redis延迟和内存使用问题
echo never > /sys/kernel/mm/transparent_hugepage/enabled