安装

yum/apt 安装

#centos
yum -y install redis

#Ubuntu
apt -y install redis

编译安装

  • 源代码官网:https://download.redis.io/releases/
#安装依赖包
[root@centos8 ~]# yum -y install make gcc systemd-devel
# Ubuntu
# apt -y install make gcc libsystemd-dev


#下载并解压缩,wget下载不了需翻墙下载到本地在拷贝
[root@centos8 ~]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
[root@centos8 ~]# tar xf redis-6.2.6.tar.gz

#开始编译安装
[root@centos8 ~]# cd redis-6.2.6
#redis-6.2.6版本需要启用systemd,否则将无法使用systemd来启动redis
[root@centos8 redis-6.2.6]# make USE_SYSTEMD=yes PREFIX=/apps/redis install

#编译完成后目录
[root@centos8 ~]# tree /apps/
/apps/
└── redis
    └── bin
        ├── redis-benchmark
        ├── redis-check-aof -> redis-server
        ├── redis-check-rdb -> redis-server
        ├── redis-cli
        ├── redis-sentinel -> redis-server
        └── redis-server
2 directories, 6 files


#将二进制文件加入到PATH变量中并设置成软连接
[root@centos8 /]# ln -s /apps/redis/bin/* /usr/bin/

#创建需要的目录
[root@centos8 /]# mkdir -p /apps/redis/{etc,log,data,run}

#复制配置文件,注意复制后的配置文件权限,需修改成redis
[root@centos8 redis-6.2.6]# pwd
/usr/local/src/redis-6.2.6
[root@centos8 redis-5.0.9]# cp redis.conf /apps/redis/etc/

#创建redis账号
[root@centos8 /]# useradd -r redis -u 637 -s /sbin/nologin

#修改权限
[root@centos8 /]# chown -R redis.redis /apps/redis/

实现多实例安装

  • 编译安装后,将配置文件修改完毕后拷贝成模板在复制粘贴并修改端口号在重新启动服务即可
  • 假设在同一主机安装三个 redis 多实例
#编译安装过程省略...

#编译安装后的目录
[root@18 ~]# tree /apps/redis/
/apps/redis/
├── bin
│   ├── redis-benchmark
│   ├── redis-check-aof -> redis-server
│   ├── redis-check-rdb -> redis-server
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── data
├── etc
│   └── redis.conf
├── log
└── run

#修改配置文件省略...(主要是指定不同的端口、PID文件、log文件)

#拷贝配置文件省略..

#指定不同的service文件...(主要是每个service文件指定不同的redis配置文件)
[root@centos8 /]# cat /usr/lib/systemd/system/redis6379.service
[root@centos8 /]# cat /usr/lib/systemd/system/redis6380.service
[root@centos8 /]# cat /usr/lib/systemd/system/redis6381.service

#启动后效果
[root@centos8 etc]$tree /apps/redis/
/apps/redis/
├── bin
│   ├── redis-benchmark
│   ├── redis-check-aof
│   ├── redis-check-rdb
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── data
│   └── dump.rdb
├── etc
│   ├── redis_6379.conf
│   ├── redis_6380.conf
│   └── redis_6381.conf
├── log
│   ├── redis_6379.log
│   ├── redis_6380.log
│   └── redis_6381.log
│ 
└── run 
    ├── redis_6379.pid
    ├── redis_6380.pid
    └── redis_6381.pid

5 directories, 16 files

#全部启动服务后查看端口
[root@centos8 etc]# ss -ntl
State          Recv-Q         Send-Q                   Local Address:Port                   Peer Address:Port         
LISTEN         0              128                            0.0.0.0:6379                        0.0.0.0:*            
LISTEN         0              128                            0.0.0.0:6380                        0.0.0.0:*            
LISTEN         0              128                            0.0.0.0:6381                        0.0.0.0:* 

#注意修改权限
[root@centos8 /]# chown -R redis.redis /apps/redis/

redis service文件

  • 多实例的情况下复制service文件并修改redis.conf的配置文件路径即可
# cat /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target