Redis学习笔记:安装、配置、命令行工具

本文更新于2026-01-14,使用Redis 8.3.240,操作系统为Deepin 15.11。

Linux下安装

官方下载页:https://redis.io/downloads/

官方源代码安装文档:https://redis.io/docs/latest/operate/oss_and_stack/install/archive/install-redis/install-redis-from-source/

编译

wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
sudo make install

执行make后,可执行文件编译于redis-stable/src中。执行sudo make install后,可执行文件拷贝至/usr/local/bin目录下。可执行文件包括:

  • redis-benchmark:性能测试。
  • redis-check-aof:检查AOF文件。
  • redis-check-rdb:检查快照文件。
  • redis-cli:客户端。
  • redis-sentinel:哨兵。
  • redis-server:服务器。

默认配置文件位于redis.conf、redis-full.conf、sentinel.conf。

创建Systemd服务

  1. 创建系统用户。

    sudo useradd -r -M -s /sbin/nologin redis
    sudo mkdir /var/lib/redis
    sudo chown redis:redis /var/lib/redis
    
  2. 创建配置文件。

    sudo touch /etc/redis.conf
    sudo chown redis:redis /etc/redis.conf
    sudo chmod 0600 /etc/redis.conf
    
  3. 创建Systemd服务。

    sudo vi /lib/systemd/system/redis.service
    

    文件内容为:

    [Unit]
    Description=Redis Server
    After=network.target
     
    [Service]
    User=redis
    Group=redis
    ExecStart=/usr/local/bin/redis-server /etc/redis.conf
    Restart=on-failure
    WorkingDirectory=/var/lib/redis
     
    [Install]
    WantedBy=multi-user.target
    
  4. 开机自启动

    sudo systemctl enable redis
    sudo systemctl start redis
    

Docker下运行

docker container create -p 6379:6379 --name redis redis
docker start redis

docker container create可加上redis-server使用的参数。

容器中的目录结构:

  • /usr/local/bin:安装目录
  • /data:数据目录。

端口

默认端口为6379。

配置

说明:本节中,大写为自定义变量,根据实际情况填写。使用|表示使用左侧或右侧内容。

  • appendfsync always|everysec|no:AOF将写操作同步至磁盘的频率,always为每次写操作,everysec为最多每秒一次,no为不做限制而由操作系统决定。
  • appendonly yes|no:是否开启AOF,不使用快照。
  • auto-aof-rewrite-min-size SIZE:AOF文件超过此大小,且比上一次重写后增长超过auto-aof-rewrite-percentage指定的百分比时,进行重写。如:64mb。
  • auto-aof-rewrite-percentage PERCENTAGE:AOF文件比上一次重写后增长超过此百分比,且超过auto-aof-rewrite-min-size指定的大小时,进行重写。如:100。
  • bind IP [...]:监听的IP地址。默认为本机所有IP。
  • client-output-buffer-limit pubsub HARDSIZE SOFTSIZE SOFTSECONDS:发布/订阅连接的输出缓冲区限制,不超过HARDSIZE且在SOFTSECONDS秒内不超过SOFTSIZE,否则关闭连接。全0为无限制。如:pubsub 32mb 8mb 60。
  • dbfilename FILENAME:快照文件名。默认为dump.rdb。
  • dir DIR:快照文件和AOF文件保存的目录。如:./db。
  • hash-max-ziplist-entries AMOUNT:无序散列被编码为压缩列表时允许的最大元素数量。
  • hash-max-ziplist-value SIZE:无序散列被编码为压缩列表时允许的最大字节数。
  • list-max-ziplist-entries AMOUNT:列表被编码为压缩列表时允许的最大元素数量。
  • list-max-ziplist-value SIZE:列表被编码为压缩列表时允许的最大字节数。
  • lua-time-limit MILLSECONDS:Lua脚本执行的最长毫秒数,超时则使用SCRIPT KILL将脚本杀死。
  • no-appendfsync-on-rewrite yes|no:当重写AOF文件时是否停止将写操作刷新至磁盘。
  • rdbcompression yes|no:保存快照时是否进行压缩。
  • requirepass PASSWORD:身份验证密码。
  • save SECONDS WRITETIMES:距离上一次创建快照超过SECONDS秒且达到WRITETIMES次写操作时触发BGSAVE命令保存快照,可设置多个。如:60 1000。
  • slave-read-only yes|no:从服务器是否只读不允许写入。默认为yes。
  • set-max-intset-entries AMOUNT:集合被编码为整数集合时允许的最大元素数量。
  • slaveof HOST PORT:作为从服务器,指定主服务器。
  • stop-writes-on-bgsave-error yes|no:当执行BGSAVE命令保存快照时出错是否停止后续新的写操作。
  • zset-max-ziplist-entries AMOUNT:有序集合被编码为压缩列表时允许的最大元素数量。
  • zset-max-ziplist-value SIZE:有序集合被编码为压缩列表时允许的最大字节数。

命令行工具

说明:本节中,大写为自定义变量,根据实际情况填写。使用[]引起表示内容可选。

redis-benchmark

性能测试。

redis-benchmark OPTIONS

OPTIONS可为:

  • -c N:指定并发客户端的数量。缺省为50。
  • -q:简化输出。

redis-check-aof

检查AOF文件。

redis-check-aof [--fix] FILENAME
  • --fix:修复AOF文件。

redis-check-rdb

检查快照文件。

redis-check-dump FILENAME

redis-cli

客户端。

redis-cli OPTIONS

OPTIONS可为:

  • -h HOST:指定服务器主机。默认为localhost。
  • -p PORT:指定服务器端口。默认为6379。
  • --eval LUAFILENAME [LUAKEY <...> [, LUAARGV [...]]]:执行Lua脚本文件。LUAKEY为脚本中使用到的键,依次以KEYS[1]等形式使用。LUAARGV为脚本中使用到的附加参数,依次以ARGV[1]等形式使用。脚本中可使用VALUE = redis.call(COMMAND, KEYS[1] <...>)VALUE = redis.pcall(COMMAND, KEYS[1] <...>)的形式调用命令。
  • --help:打印帮助信息。
  • --ldb:开启Lua脚本的调试。与--eval一起使用。
  • --raw:使用原始数据格式显示结果。结果没有行号,不进行转义。当标准输出不是TTY终端时,为默认选项。
  • --scan:使用SCAN命令列出所有键。

redis-sentinel

哨兵。用于对主从服务进行自动故障转移,实际上是运行在特殊模式下的redis-server。

redis-server

服务器。

redis-server [CONFIGFILENAME]

redis-trib.rb

Cluster集群管理。

posted @ 2021-01-30 23:03  garvenc  阅读(678)  评论(0)    收藏  举报