• 中间件 | Redis - [安装 & 基本信息]


    §1 安装

    安装 gcc
    yum install gcc

    下载

    解压
    tar -zxvf reids

    进入解压目录,编译
    make

    若出现下面提示,需要执行 make distclean

    致命错误:Jemalloc/jemalloc.h 没有那个文件或目录

    安装
    make install

    §2 目录

    安装位置
    /usr/local/bin

    默认安装目录

    • redis-benchmark
      性能测试工具
    • redis-check-aof
      AOF 文件修复
    • redis-check-dump
      dump.rdb 文件修复
    • redis-sentinel
      redis 集群监控
    • redis-werver
      服务端命令
    • redis-cli
      客户端命令

    §3 配置

    配置文件获取
    配置文件可以在 redis 官网相关页面 获取

    配置文件位置
    可以存放在 /etc/redis.conf

    配置文件说明
    单位说明

    • 最基础的单位是 byte ,没有 bit
    • k/kb、m/mb、g/gb 是不同的,1000 进制和 1024 进制的区别
    # Note on units: when memory size is needed, it is possible to specify
    # it in the usual form of 1k 5GB 4M and so forth:
    #
    # 1k => 1000 bytes
    # 1kb => 1024 bytes
    # 1m => 1000000 bytes
    # 1mb => 1024*1024 bytes
    # 1g => 1000000000 bytes
    # 1gb => 1024*1024*1024 bytes
    #
    # units are case insensitive so 1GB 1Gb 1gB are all the same.
    

    包含文件

    # include /path/to/local.conf
    # include /path/to/other.conf
    

    网络绑定

    bind 127.0.0.1
    

    只有绑定的 ip 可以访问 redis,通常 需要设置

    保护模式

    protected-mode no
    

    保护模式下只有本机可以访问 redis,通常 改为 yes

    端口号

    port 6379
    

    tcp 连接队列

    tcp-backlog 511
    

    tcp-backlog 是 tcp 连接队列的总和,包括已经完成三次握手的和未完成的
    linux 会减小此值到 /proc/sys/net/core/somaxcon,即128
    因此需要同时配置 /proc/sys/net/core/somaxcon/proc/sys/net/ipv4/tcp_max_syn_backlog

    超时时间

    timeout 0
    

    连接超时时间,以秒为单位
    默认 0,永不超时

    tcp 心跳时间

    tcp-keepalive 60
    

    tcp 心跳时间,单位是秒,推荐 60

    后台启动

    daemonize no
    

    是否后台启动,默认 no,一般改成 yes

    进程号文件

    pidfile /var/run/redis_6379.pid
    

    redis 启动后会用一个文件保存进程号,这个参数用于设置对应的文件

    日志

    loglevel notice
    logfile "" 
    

    loglevel 用于设置日志级别,有 4 个级别

    • debug 最详细
    • verbose 有用的信息,类似 info,默认
    • notice 重要信息,常用于生产环境
    • warning 警告,日志最少

    logfile 用于设置日志文件的输出路径,默认为空

    系统日志

    syslog-enable no
    syslog-ident redis
    syslog-facility local0
    

    syslog-enable 用于配置是否允许系统日志
    syslog-ident 系统日志的认证,默认以 redis 开头
    syslog-facility 用于指定记录系统日志的设备,默认 local0

    数据库数量

    databases 16
    

    设置数据库数量,默认 16

    密码

    # requirepass foobared
    

    设置 redis 的密码,默认无密码
    设置密码后,每个命令使用前都需要进行密码验证 auth 密码
    通常环境下,由外部系统,比如 Linux 通过防火墙等级制限制安全,不推荐设置密码

    客户端连接数

    # maxclients 10000
    

    用于设置 redis 客户端最大连接数

    内存占用

    # maxmemory 
    maxmemory-policy noeviction
    # maxmemory-samples 5
    

    maxmemory 用于设置 redis 占用的最大内存,建议设置
    maxmemory-policy 用于设置 redis 达到最大内存后的淘汰策略
    参考 中间件 | Redis - [内存 & 过期策略]
    maxmemory-samples 用于设置 redis 执行过期策略的样本数量
    maxmemory-samples 5 执行过期策略时会抽出 5 个 key,淘汰其中符合过期策略的那个


    RDB 文件名

    dbfilename dump.rdb
    

    RDB 文件路径

    dir ./
    

    ./ 表示 redis 的启动目录

    后台保存失败时停止 RDB 写入

    stop-writes-on-bgsave-error yes
    

    RDB 持久化下,当最后一次后台保存失败时,停止写入
    通常是硬盘写满导致的

    RDB 文件压缩

    rdbcompression yes
    

    是否通过 LZF 算法进行压缩,默认开启

    RDB 文件压缩

    rdbchecksum yes
    

    在 RDB 文件最后追加一个校验和 checksum
    这可以提高文件格式的抗破坏性,但会增加大约 10% 的性能损耗
    推荐打开 yes

    RDB 保存策略

    save 900 1
    save 300 10
    save 60 10000
    

    以第一条为例:在 900 秒内,若出现至少 1 个 key 变化,就进行一次保存
    可以设置多条策略,如上示例
    不推荐设置,或使用 save ""
    推荐使用 bgsave


    AOF 开启

    appendonly yes
    

    默认不开启,使用时需要打开

    AOF 文件名

    appendfilename "appendonly.aof"
    

    默认不开启,使用时需要打开

    AOF 文件路径

    dir ./
    

    RDB 文件路径

    AOF 同步策略

    appendfsync everysec
    

    详见 中间件 | Redis - [持久化]#同步策略

    AOF 重写压缩策略

    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    

    详见 中间件 | Redis - [持久化]#重写压缩策略


    slave 优先级

    slave-priority 100
    # 较新版本中是下面
    replice-priority 100
    

    上面两个是同一个配置
    值越小优先级越高


    集群全覆盖

    # cluster-require-full-coverage no
    

    用于设置某段 hash 槽的所有主从节点都挂了,集群是否还能工作

    • no:还能工作,出问题的 hash 槽不能读写
    • yes:集群停止

    §4 启动/停止

    docker 启动方式参考 云原生 | Docker - [redis集群搭建]

    服务端后台启动
    redis.conf 中设置后台启动
    daemonize yes

    挂载指定 redis.conf 的启动
    redis-server /etc/redis.conf

    客户端启动
    redis-cli

    客户端退出
    shutdown

    §5 实例基本信息

    默认端口
    6379

    默认数据库数量
    16,0-15

    线程
    单线程(执行指令)
    IO 多路复用
    详见 中间件 | Redis - [ACL & 多路复用]

    §6 数据类型与常见应用场景

    下面的数据类型是指 value 的类型

    • string
    • list
    • hash
    • set
    • zset
    • bitmap
    • HyperLogLog
    • GEO
    • stream
  • 相关阅读:
    MAC M1 Pro搭建移动端UI自动化测试环境--Android篇
    一分钟告诉你识别植物的软件哪个好?
    针对discuz3.2的渗透测试
    【2024校招】2023-9-17 度小满信贷系统平台部后端一面
    5.Mybatis 缓存详解
    2022IDEA配置启动lilishop的swagger展示
    产业区块链生态日:你的故事,我们在等待 | 征集帖
    十四、SpringBoot原理——SpringBoot应用是怎么启动的?从创建容器到运行容器,逐行分析完整过程
    C# OpenCvSharp Yolov8 Detect 目标检测
    Go语言学习笔记—golang操作Redis
  • 原文地址:https://blog.csdn.net/ZEUS00456/article/details/126947705