INDEX
- §1 安装
- §2 目录
- §3 配置
- §4 启动/停止
- §5 实例基本信息
- §6 数据类型与常见应用场景
§1 安装
安装 gccyum 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