Skip to content

Redis基础与核心概念

简介与特性

Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。作为NoSQL数据库的一员,Redis不使用传统的表结构来组织数据,而是支持多种数据结构类型如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等,并且提供了丰富的操作命令。Redis的设计目标是提供快速的读写速度,它通过将数据保存在内存中实现了这一点,同时提供了持久化功能以保证数据的安全性。

Redis的核心特性:

  • 高性能:由于数据主要存储在内存中,Redis可以实现非常快的读写速度,这对于需要高吞吐量的应用来说非常重要。
  • 内存存储:Redis默认将所有数据保存在内存中,这极大地提高了数据访问的速度。当然,也可以配置Redis仅将部分热点数据放在内存中。
  • 持久化:尽管Redis主要是内存型数据库,但它也支持数据的持久化,可以通过RDB快照和AOF日志两种方式来保证数据的持久性。
  • 多数据结构:Redis支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等,每种数据结构都有对应的丰富操作命令,能够满足不同的业务需求。

适用场景:

  • 缓存:利用其高速读写的特点,Redis常被用作应用层与数据库之间的缓存层,减少对后端数据库的压力,提高响应速度。
  • 消息队列:Redis提供的列表(List)数据结构非常适合用来实现简单的消息队列服务。
  • 排行榜:借助于有序集合(Sorted Set),Redis可以很方便地实现实时更新的排行榜功能。
  • 会话存储:Web应用中用户的会话信息可以存储在Redis中,以便于分布式架构下跨服务器共享用户状态。

不适用场景:
对于那些需要复杂查询、事务处理或严格的数据一致性要求较高的应用场景,Redis可能不是最佳选择。例如,执行复杂的联表查询、需要ACID事务支持的金融交易系统等。此外,如果应用对数据存储成本极为敏感,考虑到Redis主要依赖内存存储,其相对较高的存储成本也可能成为一个限制因素。

安装与配置

  • Redis 的安装(Linux、Windows、Docker)
  • 配置文件解析(redis.conf 核心参数)
  • 基本命令与客户端工具(redis-cli、可视化工具)

Windows

由于Redis官方未正式支持Windows系统,但第三方维护了一个Windows移植版本。本教程基于 Redis 5.0.14 for Windows 版本,适用于开发/测试环境。

  • 下载Redis安装包
  • 安装Redis
    • 运行安装程序
      双击下载的 .msi 文件,启动安装向导。
    • 同意许可协议
      勾选 "I accept the terms in the License Agreement",点击 Next。
    • 选择安装路径
      默认路径为 C:\Program Files\Redis,可自定义路径(建议无空格路径,如 D:\Redis)。
    • 设置环境变量
      勾选 Add the Redis installation folder to the PATH environment variable,将Redis添加到系统环境变量。
    • 端口与防火墙配置
      • 默认端口 6379(保持默认即可)
      • 勾选 Add an exception to the Windows Firewall
        按需选择,开发环境可不勾选。
        勾选后允许外部客户端通过TCP/IP协议与运行在本地计算机上的Redis服务器通信。具体来说,当你选择这个选项时,安装程序会在Windows防火墙中创建一个规则,允许流量通过Redis配置文件中设定的端口(默认是6379),这样外部的其他设备或应用程序就能连接到你的Redis实例了。
    • 最大内存限制
      默认不限制内存,直接点击 Next。
    • 完成安装
      点击 Install 开始安装,完成后点击 Finish。
  • 验证安装
    • 启动Redis服务
      • 方式一:通过服务管理器启动
        按下 Win + R,输入以下命令,找到 Redis 服务并启动。
        shell
        services.msc
      • 方式二:命令行启动
        按下 Win + R,输入 cmd 打开命令提示符,输入:以下命令启动 Redis 服务。
        shell
        // 先按下 Win + R
        cmd
        shell
        redis-server
      • 方式三:exe双击启动
        双击 redis-server.exe 文件启动 Redis 服务。
    • 测试Redis连接
      • 新开一个命令提示符窗口,输入:redis-cli, 或直接双击 redis-cli.exe
      • 执行以下命令测试,若返回 PONG 表示安装成功。
        shell
        127.0.0.1:6379> ping
  • 配置Redis(可选)
    • 修改配置文件 配置文件位于安装目录下的 redis.windows-service.conf(服务模式)或 redis.windows.conf(非服务模式)。
      配置项描述
      bind 127.0.0.1绑定IP(默认仅本地访问)
      port 6379监听端口
      requirepass yourpassword设置密码(请替换yourpassword为实际密码)
      maxmemory 256mb最大内存限制
    • 修改配置文件后,通过重启Redis服务生效。
  • 基本使用命令
shell
redis-server --service-start
shell
redis-server --service-stop
shell
redis-server --service-uninstall
  • 注意事项
    • 生产环境建议
      Windows版Redis仅建议用于开发测试。
      生产环境推荐使用Linux系统或通过WSL2运行Redis。
    • 性能优化
      Windows版Redis性能可能低于Linux版本。
      如需高性能场景,建议使用Docker或虚拟机部署Linux环境。
    • 数据持久化
      默认启用RDB快照,数据保存在 dump.rdb 文件中(路径见配置文件)。

通过以上步骤,您已成功在Windows系统上安装并配置了Redis。如有问题,可检查日志文件(默认位于安装目录下的 Logs 文件夹)。

Linux

  • 安装 gcc 环境 Redis是由C语言编写的,它的运行需要C环境,因此需要先安装gcc

    shell
    # 如果检查有对应的版本,即gcc已经安装,则可跳过安装gcc此步骤
    gcc --version
    shell
    # 安装gcc
    yum install gcc

    gcc安装版本

    TIP

    如果检查有对应的版本,即gcc已经安装,则可跳过安装gcc此步骤

  • 下载安装 redis

    安装redis
    shell
    # 安装应养成良好习惯 文件归类
    mkdir -p /opt/software/redis
    
    # 进入redis文件夹,使用wget下载
    cd /opt/software/redis
    wget https://download.redis.io/redis-stable.tar.gz
      
    # 解压下载的redis包
    tar -zxvf redis-stable.tar.gz
      
    # 进入 redis-stable 目录,然后使用 make install 编译并安装
    # 安装完后 /usr/local/bin 会生成相应的服务
    cd redis-stable
    make install
      
    # 检查是否生成成功
    ll /usr/local/bin

    bin目录文件

    文件名描述
    redis-benchmark性能测试工具,用于模拟N个客户端同时发送M个请求来测试Redis服务器性能。
    redis-check-aof用于修复有问题的AOF(Append Only File)文件,确保数据恢复时的一致性和完整性。
    redis-check-rdb用于检查和修复RDB(Redis Database Backup)文件中的错误。
    redis-sentinelRedis高可用性解决方案Sentinel系统使用的命令,用于监控和故障转移管理。
    redis-serverRedis服务器启动命令,用于启动Redis实例,可以指定配置文件等参数。
    redis-cliRedis客户端操作入口,提供命令行接口与Redis服务器进行交互,执行各种操作命令。
  • 启动redis
    到这里其实我们可以使用 /opt/software/redis/redis-stable/src 目录下的 redis-server 或 /usr/local/bin 目录下的 redis-server 启动服务了

    • 方式一 通过 /opt/software/redis/redis-stable/src 目录下的 redis-server 启动服务
      启动redis服务
      shell
      cd /opt/software/redis/redis-stablee/src
      redis-server
      启动Redis服务
    • 方式二 通过 /usr/local/bin 目录下的 redis-server 启动服务
      启动redis服务
      shell
      cd /usr/local/bin
      redis-server
      启动Redis服务
  • 配置Redis
    前⾯的启动⽅式⽆法再后台运⾏,退出之后直接关闭了 Redis 服务,所以我们还需要针对 Redis 做⼀些设置。

    shell
    # 修改当前 redis 目录下的 redis.conf 文件
    # 如果使用 vim 后没有显示行号, 可以在打开 vim 后输入 ': set number'
    # 进入编辑模式(先按 esc,再按 i 进入编辑模式),修改 redis.conf 文件 
    # 非编辑模式下(按esc进入非编辑模式)输入 ':行号' 可直接跳转到指定行,比如 :20 直接跳转到 20 行
    # 编辑完成后退出 vim (按 esc, 再按 ':wq' 退出编辑模式)
    vim redis.conf
    shell
    # 88行,修改 bind 项,* -::* 支持远程连接
    bind * -::* 
    # 309行,开启守护进程,后台运行
    daemonize yes
    # 357行,指定日志文件目录
    logfile /opt/software/redis/redis-stable/redis.log
    # 514行,指定工作目录
    dir /opt/software/redis
    # 1048行,给默认用户设置密码,主要是使用 redis-cli 连接 redis-server 时,需要通过密码校验。 也可不设置
    requirepass 1qaz@WSX
    # 111行, 允许远程连接 如果不设置密码必须将此设置关闭
    protected-mode no
  • 重启redis
    修改完成后,使用配置文件启动 redis,并使用 redis-cli 连接测试,需要注意由于之前配置了安全密码,所以连接后需要先验证密码,否则会报错。

    redis-cli
    shell
    cd /opt/software/redis/redis-stable
    ./src/redis-server redis.conf
    redis-cli
    auth 1qaz@WSX

    redis-cli

  • 退出redis

    退出redis
    shell
    cd /opt/software/redis/redis-stable
    ./src/redis-server redis.conf
    redis-cli
    auth 1qaz@WSX
    # exit 也可以
    quit

    redis-cli-exit

  • 关闭redis

    关闭redis
    shell
      cd /opt/software/redis/redis-stable
    ./src/redis-server redis.conf
    redis-cli
    auth 1qaz@WSX
    shutdown

    redis-cli-shutdown

Redis图形化工具