Redis安装

大部分企业可能还在使用redis4的版本,今年redis也迎来了6的版本更新,这次更新最大的改变应该就是支持了多线程,性能相较于上一代有大幅提升 ,那本篇就介绍如何在CentOS7下安装Redis6.0.3 最新稳定版。

Windows安装

Linux安装redis

  1. 下载

  2. 准备: 编译安装需要gcc5.3以上,可以用gcc -v 命令查看当前版本号

    • Redis是C语言开发,安装Redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc yum -y install gcc gcc-c++

    • 使用下面的命令升级到gcc9.1:

      1
      2
      3
      4
      5
      6
      yum -y install centos-release-scl
      yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
      scl enable devtoolset-9 bash
      #scl命令启用只是临时的,新开的会话默认还是原gcc版本。
      #如果要长期使用gcc 9.1的话执行下面的命令即可:
      echo -e "\nsource /opt/rh/devtoolset-9/enable" >> /etc/profile
    • make命令: yum -y install make

  3. 下载解压

    1
    2
    3
    4
    5
    wget http://download.redis.io/releases/redis-4.0.1.tar.gz
    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    # 生成如果用redis6,版本要>=6.0.8
    wget https://download.redis.io/releases/redis-6.2.7.tar.gz
    tar -xzvf redis-6.2.7.tar.gz -C /opt/module
  4. 切换到目录,编译

    1
    2
    3
    4
    5
    6
    7
    8
    cd redis-6.2.3/
    # 编译 make 或 make MALLOC=libc
    make
    #测试需要依赖tcl 可以跳过
    yum install tcl -y
    make test
    # 如果编译出错之后再编译可以先执行命令删除之前的编译文件
    make distclean
  5. 安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # (安装编译后的文件) 安装到指目录:
    # PREFIX必须大写、同时会自动为我们创建redis目录,并将结果安装此目录
    # 可以目录 /opt/app/redis6
    make install PREFIX=/usr/local/redis

    # 默认安装:bin
    $ make install

    # 验证: 可以看到 redis-cli,redis-server命令
    ls /usr/local/redis
  6. 复制源码中redis.conf文件到/usr/local/redis目录下并修改配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # 将解压的配置文件复制到安装文件的目录下
    mkdir /usr/local/redis/data
    cp ~/redis-6.0.3/redis.conf /usr/local/redis/

    # 修改以下几个参数:
    vim /opt/app/redis6/bin/redis.conf

    #daemonize no 改为yes,开启后台运行,默认是前台运行
    daemonize yes

    #把这一行注释,监听所有IP
    #bind 127.0.0.1

    #protected-mode yes 如果改为no,则是关闭保护模式,这种模式下不能配置系统服务,建议还是开启
    protected-mode yes

    #requirpass,保护模式开启的时候要配置密码或者bind ip
    requirepass 123456

    #修改本参数,指定数据目录
    dir /opt/app/redis6/data

    #修改本参数,指定日志目录
    logfile /opt/app/redis6/redis_6379.log

    执行下面的命令后台启动redis(建议配置环境变量$REDIS_HOME):

    cd /opt/app/redis6/bin
    ./redis-server redis.conf
  • 配置环境变量 vim /etc/bashrc or /etc/profile

    1
    2
    3
    4
    export REDIS_HOME=/usr/local/redis
    export PATH=$PATH:$JAVA_HOME/bin:$REDIS_HOME/bin
    # 更新文件
    source /etc/profile

添加redis服务到系统服务中

  • daemonize yes(修改作为后台守护程序运行)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # vim /lib/systemd/system/redis.service
    vi /etc/systemd/system/redis.service

    # 复制粘贴以下内容,注意ExecStart配置成自己的路径
    [Unit]
    Description=redis-server
    After=network.target

    [Service]
    Type=forking
    PIDFile=/var/run/redis_6379.pid
    ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
  • 设置开机启动

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    systemctl daemon-reload           # 重载服务

    systemctl enable redis # 开机自启

    systemctl start redis.service #启动redis服务

    systemctl stop redis.service #停止redis服务

    systemctl restart redis.service #重新启动服务

    systemctl status redis.service #查看服务当前状态

    systemctl enable redis.service #设置开机自启动

    systemctl disable redis.service #停止开机自启动

设置远程连接

  • Redis默认设置的是允许本地连接,所以需要在redis安装目录中找到redis.conf,
    并将 bind 127.0.0.1注释掉,改为bind 0.0.0.0

  • 开放端口,(如果是阿里云服务器,登录阿里云账号,找到安全组设置,开发6378的端口,详情可以咨询阿里云客服)

    1
    2
    3
    4
    5
    # 开发6379端口
    firewall-cmd --zone=public --add-port=6379/tcp --permanent

    # 刷新防火墙
    firewall-cmd --reload

redis启动

  • 我们来启动Redis,其中Redis的启动有三种方式

    1. 直接启动 直接执行redis-server即可启动Redis,这个方式启动实际上就是读取Redis的默认配置启动。

    2. 动态参数启动 执行redis-server --port 6380即可指定端口号启动Redis,更多参数可以参考官方的文档。

    3. 配置文件启动 执行redis-server config.conf即可指定名为config.conf的配置文件进行启动Redis。

      1
      2
      3
      4
      5
      # 修改配置文件 etc/redis.conf 
      bind 192.168.2.101(修改绑定ip)
      daemonize yes(修改作为后台守护程序运行)
      # 指定配置文件,后台运行服务器端:
      ./redis-server /usr/local/redis/redis.conf
  • 配置防火墙,嫌麻烦直接关闭即可:

    1
    2
    3
    4
    5
    6
    #关闭防火墙
    service firewalld stop

    #单独开6379端口
    firewall-cmd --permanent --add-port=6379
    tcpfirewall-cmd --reload

连接Redis

  • 图形客户端: 下载安装 redis desktop manager

  • 自带客户端连接: 由于上面的配置我们已经开启了所有IP的监听,因此可以直接连接

    1
    2
    3
    4
    # redis-cli –h IP地址 –p 端口 –a 密码
    # --raw 避免中文显示乱码
    # redis-cli -a password_value --raw
    [root@node1 bin]# /usr/local/redis/bin/redis-cli -a 123456

关闭服务

  • 强制关闭:ctrl+c
  • 正常命令:./redis-cli shutdown(推荐)
  • 查询PID:ps -ef | grep -i redis ,后 kill -9 PID

卸载Redis

  • 查看reids 是否在运行,如果在运行的话,先关闭

    1
    2
    3
    4
    5
    6
    7
    8
    # redis-server目前正在6379端口运行,需要将该进程关闭。
    [root@node1 redis-6.2.7]# ps -ef | grep redis
    root 70896 59211 0 22:45 pts/1 00:00:00 redis-server *:6379

    # kill -9 PID 将进程关闭
    [root@node1 redis-6.2.7]# kill -9 7089

    # 正常停止redis-cli shutdown
  • 删除/usr/local/lib目录下与redis相关的文件:

    1
    2
    3
    4
    # /usr/local/lib目录下与redis相关的文件:
    rm -rf /usr/local/bin/redis-*
    # 删除掉解压后的文件目录和所有文件
    rm -rf redis-3.2.1
  • 卸载完成