yum安装是这种十分简单的方法我们就不在提及了,今天我们来做一下redis的编译安装
Redis源码包官方下载链接:http://download.redis.io/releases/
一、编译安装:
安装依赖包
dnf -y install make gcc jemalloc-devel systemd-devel
如果是Ubuntu系统请安装以下包
apt -y install make gcc libjemalloc-dev libsystemd-dev
下载源码并解压
wget http://download.redis.io/releases/redis-6.2.8.tar.gz
tar -zxf redis-6.2.8.tar.gz
编译安装,默认使用systemd文件
cd redis-6.2.8
make -j 2 USE_SYSTEMD=yes PREFIX=/data/redis install
# -j 根据机器的CPU核数配置来编译,速度更快
配置环境变量
echo 'PATH=/data/redis/bin:$PATH' > /etc/profile.d/redis.sh
. /etc/profile.d/redis.sh
目录结构
准备相关目录和配置文件
mkdir /data/redis/{etc,log,data,run}
cp /root/redis-6.2.8/redis.conf /data/redis/etc/
前台启动redis
redis-server /data/redis/etc/redis.conf
查看端口启动情况
消除启动redis时有的Warring
信息,可以用下边方法消除告警,但非强制消除(可选)
vim /etc/sysctl.conf
net.core.somaxconn = 1024
vm.overcommit_memory = 1
sysctl -p
开启redis多实例
在新开的窗口下执行此命令
redis-server --port 6380
再次查看端口启动情况
创建redis用户和设置数据目录权限
useradd -r -s /sbin/nologin redis
#设置目录权
chown -R redis.redis /data/redis
创建redis服务的services文件
(可以复制centos8利用yum安装redis生成的redis.service文件,进行修改)
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/data/redis/bin/redis-server /data/redis/etc/redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=1000000
[Install]
WantedBy=multi-user.target
通过service方式启动redis
systemctl daemon-reload
systemctl enable --now redis
验证客户端连接redis
修改redis的连接为全部可连接,并且为redis配置密码
修改redis的配置文件
vim /data/redis/etc/redis.conf
bind 0.0.0.0
requirepass 123456
修改完毕后重启redis实例
systemctl restart redis
验证
二、redis多实例
测试环境中经常使用多实例,需要指定不同实例的相应端口,配置文件,日志文件等相关配置
以编译安装为列实现redis多实例
查看目录结构
先停止现有的redis实例
systemctl stop redis.service
修改redis配置文件同时新增两份
mv /data/redis/etc/redis.conf /data/redis/etc/redis6379.conf
sed 's/6379/6380/' /data/redis/etc/redis6379.conf > /data/redis/etc/redis6380.conf
sed 's/6379/6381/' /data/redis/etc/redis6379.conf > /data/redis/etc/redis6381.conf
修改配置文件的所有者和所属组
chown -R redis.redis /data/redis/etc/
同理修改service文件
mv /lib/systemd/system/redis.service /lib/systemd/system/redis6379.service
vim /lib/systemd/system/redis6379.service
ExecStart=/data/redis/bin/redis-server /data/redis/etc/redis6379.conf --supervised systemd
cp /lib/systemd/system/redis6379.service /lib/systemd/system/redis6380.service
cp /lib/systemd/system/redis6379.service /lib/systemd/system/redis6381.service
sed -i 's/redis6379/redis6380/' /lib/systemd/system/redis6380.service
sed -i 's/redis6379/redis6381/' /lib/systemd/system/redis6381.service
重启服务
systemctl daemon-reload
systemctl enable --now redis6379.service
systemctl enable --now redis6380.service
systemctl enable --now redis6381.service
验证