开发者社区> 君哥聊编程> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

玩转Linux系统【四】安装Redis服务

简介: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
+关注继续查看

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list(列表),set(集合),zset(有序集合),hash(哈希表)等数据结构的存储。
  • Redis支持数据的备份,即master-slave(主从模式)模式的数据备份。

Redis 优势:

  1. 性能极高 – Redis的读取速度是110000次/s,写入速度是81000次/s 。
  2. 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  3. 原子 – Redis的所有操作都是原子性的。意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  4. 丰富的特性 – Redis还支持 publish/subscribe(发布-订阅模式), 通知, key 过期等等特性。

下载安装

  1. 进入/usr/local目录

    $ cd /usr/local
  2. 离线下载

    https://redis.io/download
  3. 在线下载

    $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
  4. 解压

    $ tar xzf redis-5.0.5.tar.gz
  5. 安装gcc

    由于redis通过源码安装,依赖gcc编译器,首先确认其机器gcc版本,保证其gcc版本在4.2以上,我这里为4.8故直接跳过该步:

    $ gcc –v
    gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
    # 安装命令
    $ yum install gcc
  6. redis安装

    $ cd redis-5.0.5
    
    # 编译安装
    $ make MALLOC=libc
    
    # 编译测试
    $ make test

    若编译测试出现问题,则直接安装肯定也不通过,可能会出现如下异常

    [root@iz2zehvxttbua2f45dp7ihz redis-5.0.5]# make test
    cd src && make test
    make[1]: Entering directory `/usr/local/redis/redis-5.0.5/src'
        CC Makefile.dep
    make[1]: Leaving directory `/usr/local/redis/redis-5.0.5/src'
    make[1]: Entering directory `/usr/local/redis/redis-5.0.5/src'
    You need tcl 8.5 or newer in order to run the Redis test
    make[1]: *** [test] Error 1
    make[1]: Leaving directory `/usr/local/redis/redis-5.0.5/src'
    make: *** [test] Error 2
    

    上面异常信息说需要tcl包提供支持,所以我们接着安装tcl包

    # 安装tcl包
    $ yum install tcl

    安装完成后再次执行make test,直到输出成功为止

    /usr/local/redis-5.0.5/src目录下的文件加到/usr/local/bin目录

    $ cd src && make install

    image.png

  7. 启动redis服务

    $ ./redis-server

    image.png

该启动方式会随着控制台的退出而关闭,所以我们需要将该服务已后台启动的方式启动

配置为后台服务

  1. 修改redis.conf文件

    $ vim redis.conf
    
    将
    daemonize no
    改为
    daemonize yes

    image.png

  2. redis.conf复制到/etc/redis目录下,并改名为6379.conf

    $ cd /etc
    $ mkdir redis
    $ cd redis
    $ cp /usr/local/redis/redis-5.0.5/redis.conf 6379.conf
    # 该文件为稍后安装的后台服务使用的配置文件
  3. 复制启动脚本到/etc/rc.d/init.d/,并改名为redisd

    # 启动脚本在/redis-5.0.5/utils目录下
    $ cp -f /usr/local/redis/redis-5.0.5/utils/redis_init_script /etc/rc.d/init.d/redisd
  4. 修改复制后的redisd文件,使之能成为服务

    $ cd /etc/rc.d/init.d/
    $ vim redisd
    • 在脚本的第一行后面添加一行内容,如下

      新版本应该不用加了
      #chkconfig:2345 80 90
    • 修改EXEC、CLIEXEC的路径

      # 原内容
      EXEC=/usr/local/bin/redis-server
      CLIEXEC=/usr/local/bin/redis-cli
      
      # 修改后的内容
      EXEC=/usr/local/redis/redis-5.0.5/src/redis-server
      CLIEXEC=/usr/local/redis/redis-5.0.5/src/redis-cli
    • 在$EXEC $CONF后面加上 &

      image.png

    • 添加开机启动

      $ chkconfig redisd on
    • 启动服务

      # 你要将6379端口添加到防火墙中
      $ firewall-cmd --zone=public --add-port=6379/tcp --permanent
      #重新加载
      $ firewall-cmd --reload
      
      $ service redisd start
      Starting Redis server...
      16842:C 13 Jul 2019 23:24:46.881 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
      16842:C 13 Jul 2019 23:24:46.881 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=16842, just started
      16842:C 13 Jul 2019 23:24:46.881 # Configuration loaded
      # 退出控制台,redis也不会关闭了
      # 停止服务
      $ service redisd stop
    • 修改密码

      $ vim /etc/redis/6379.conf
      # 将requirepass的注释放开,并更改密码,保存退出
      requirepass hosredis
  5. 支持外部宿主机远程连接

    • 停止redis服务

      $ service redisd stop
    • 如果停止不了,则可以强杀进程和删除pid

      # 查看进程信息
      $ ps -ef | grep redis
      root    14603   1  0 15:09 ?    00:00:00 /usr/local/redis-5.0.5/src/redis-server
      # 强制杀进程 kill -9 进程id
      $ kill -9 14603
    • 修改/etc/redis/6379.conf

      $ vim /etc/redis/6379.conf
      # 将bind的值由127.0.0.1改为0.0.0.0
      bind 0.0.0.0
    • 重启服务

      $ service redisd start
    • 外部再次尝试连接

      image.png

  6. redis-cli工具使用

    redis-cli工具是redis提供的命令工具,常用命令如下

    $ redis-cli
    如果有密码,则需要auth认证
    127.0.0.1:6379> auth hosredis
    OK
    127.0.0.1:6379> set efg 456
    OK
    127.0.0.1:6379> get efg
    "456"
    127.0.0.1:6379> exit

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
环境篇之 redis 的 linux 和 Windows 测试|学习笔记
快速学习环境篇之 redis 的 linux 和 Windows 测试
0 0
linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)
linux安装redis(保姆级-安装包方式安装-版本6.2.7-解决aof持久化问题)
0 0
linux 环境安装 redis-基于 Linux 安装 redis|学习笔记
快速学习 linux 环境安装 redis-基于 Linux 安装 redis
0 0
Linux 环境安装 redis-配置文件启动目录管理|学习笔记
快速学习 Linux 环境安装 redis-配置文件启动目录管理
0 0
linux 环境安装 redis-指定端口启动服务|学习笔记
快速学习 linux 环境安装 redis-指定端口启动服务
0 0
linux环境安装 redis-指定配置文件启动服务|学习笔记
快速学习 linux 环境安装 redis-指定配置文件启动服务
0 0
Linux java基础环境搭建 ->redis
Linux java基础环境搭建 ->redis
0 0
Redis在Linux下的使用命令
Redis在Linux下的使用命令
0 0
+关注
君哥聊编程
多年一线资深coder,性能调优小哥
文章
问答
文章排行榜
最热
最新
相关电子书
更多
ECS系统指南之Linux系统诊断
立即下载
ECS运维指南 之 Linux系统诊断
立即下载
Decian GNU/Linux安全合规之路
立即下载