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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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
目录
相关文章
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
16天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
166 5
|
21天前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
84 10
|
1月前
|
缓存 安全 Linux
六、Linux核心服务与包管理
在没有网络的情况下,使用系统安装光盘是获取RPM包的常用方法。场景二:配置本地文件镜像源 (使用系统安装光盘/ISO)(检查RPM包的GPG签名以保证安全) 或。YUM/DNF包管理工具 (yum/dnf)(此处可以放置您为本主题制作的思维导图)处理依赖问题的危险选项 (应极力避免)(覆盖文件、替换已安装包)。(list) 则是列出文件。(query file) 是。(假设系统安装光盘已挂载到。信息 (verbose)。(upgrade) 选项。(all) 已安装的包。(package) 选项
221 11
|
4月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
151 1
|
5月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
880 16
|
5月前
|
JSON NoSQL Redis
在Rocky9系统上安装并使用redis-dump和redis-load命令的指南
以上步骤是在Rocky9上使用redis-dump和redis-load命令顺利出行的秘籍。如果在实行的过程中,发现了新的冒险和挑战,那么就像一个勇敢的航海家,本着探索未知的决心,解决问题并前进。
188 14
|
4月前
|
关系型数据库 Linux 数据库
Linux系统安装Postgre和Postgis教程
本文详细介绍了PostgreSQL/PostGIS的卸载与安装步骤。卸载部分涵盖Docker、Yum/RPM及源码编译安装的清理方法,包括停止服务、删除容器/包、清理残留文件和环境变量等操作,并强调卸载前需备份数据库数据。安装部分提供在线yum安装和离线源码编译两种方式,前者简单快捷,后者需准备依赖(如gcc、readline-devel等)、创建用户组、初始化数据库及配置访问规则。每步均附带命令示例,确保操作清晰明确。
661 0
|
6月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
527 25
|
6月前
|
存储 Ubuntu Linux
Linux系统安装对硬件的需求
总的来说,Linux系统对硬件的需求并不高,它可以在很多年代久远的硬件上运行。但是,如果你想得到更好的体验,那么你可能需要更强大的硬件。在选择硬件时,你需要考虑你的使用需求,以及你打算安装的Linux发行版的需求。
260 25