INDEX

  • §1 安装
  • §2 目录
  • §3 配置
  • §4 启动/停止
  • §5 实例基本信息
  • §6 数据类型与常见应用场景


§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 <bytes>
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