- 支持各类Linux发行版,支持ARM端
1.下载
在编译前请安装必要的软件包:
# CentOS/Rhel yum -y install git wget gcc # Ubuntu sudo apt-get install git wget gcc
从官网上下载最新的redis稳定软件包,下载完成之后备用:
wget https://download.redis.io/redis-stable.tar.gz
解压:
tar -xf redis-stable.tar.gz && cd tar -xf redis-stable
2.编译安装
编译已经解压的redis:
make && make install
编译会根据自己电脑的配置花费不同的时间,请耐心等待,编译完成后会自动安装。
3.执行测试(可选)
在执行测试make test前需要安装tcl工具,如果你的系统是CentOS/Rhel系统,可以执行以下命令安装:
yum -y install tcl
如果是Ubuntu系统,需要下载后编译安装此工具。
wget https://udomain.dl.sourceforge.net/project/tcl/Tcl/8.6.1/tcl8.6.1-src.tar.gz
tar -xf tcl8.6.1-src.tar.gz cd unix/ ./configure make make install
以下完成之后,再次执行make test命令:
make test
测试的过程可能花费的时间会很长,耐心等待之后如果出现“\o/ All tests passed without errors!”的字样,则说明Redis编译安装成功。
4.配置
回到redis源代码目录,将redis配置文件拷贝到配置目录中:
cp redis.conf /etc/
新建日志地址:
mkdir -p /usr/local/redis/logs touch /usr/local/redis/logs/redis.log
配置redis配置文件:
vim /etc/redis.config
将下面的配置文件配置到末尾,也可以直接修改原有的配置。
# 定义日志文件 logfile "/usr/local/redis/logs/redis.log" # 若使用开机启动,生成pid,该项必须设置为yes,否则redis将不能够正常执行开机启动(systemctl start redis,执行后一直卡着,直到超时) daemonize yes # 注释掉,允许所有其他ip访问,也可以设置网段访问 #bind 127.0.0.1 #允许其他机器上的客户端连接当前redis,配置文件设置该项,则开机启动处就可以去掉--protected no protected-mode no # db保存路径,由于db持久化到磁盘,占用空间可能比较大,所以选择比较打的文件夹设置 dir /usr/local/redis/ ##设置密码 requirepass 123456
设置为开机启动:
vim /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
使配置生效:
systemctl enable redis systemctl daemon-reload
启动redis:
systemctl start redis
检查启动日志,如果没有报错正常启动则正常,也可以像我一样手动启动来检查:
tail -f /usr/local/redis/logs/redis.log
如果有警告,也可以根据警告修改内核参数:
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
最后,重启一下redis,就可以愉快地玩耍了!