Redis安装与基础配置:单节点离线部署与配置解析
Redis(Remote Dictionary Server)是一个开源的、基于内存的高性能键值存储系统。它支持多种数据结构,如字符串、哈希、列表、集合等,并且提供了丰富的配置选项。本文将详细介绍Redis在Linux系统上的单节点离线部署、配置文件解析、持久化配置以及内存分配策略。
1 单节点离线安装
在实际生产环境下,服务器一般无法直接访问互联网,这时我们需要进行离线安装。以下是Linux系统下Redis的离线安装步骤。
1.1 下载源码包
下载地址:Index of /releases/
1.2 安装依赖
# 安装C编译器
yum install gcc -y
# 安装jemalloc:Redis 默认使用jemalloc作为内存分配器,再CentOS 7的yum没有响应安装包,这里下载rpm包进行安装
[root@node3 tool]# rpm -ivh jemalloc-3.6.0-1.el7.x86_64.rpm
warning: jemalloc-3.6.0-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 764429e6: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jemalloc-3.6.0-1.el7 ################################# [100%]
[root@node3 tool]# rpm -ivh jemalloc-devel-3.6.0-1.el7.x86_64.rpm
warning: jemalloc-devel-3.6.0-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 764429e6: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jemalloc-devel-3.6.0-1.el7 ################################# [100%]
[root@node3 tool]#
1.3 解压源码包并编译依赖库
tar -zxvf redis-6.2.9.tar.gz
cd /root/tool/redis-6.2.9/deps
make hiredis lua jemalloc
1.4 编译源码包
cd /root/tool/redis-6.2.9
make
1.5 安装redis
# 编译完成后,将Redis安装到指定目录
make PREFIX=/usr/local/redis install
1.6 启动redis
# 处理配置文件并启动Redis
grep -v '^$\|#' redis.conf > /usr/local/redis/redis.conf
# 设置后台启动
sed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/redis.conf
#启动redis
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
[root@node3 redis-6.2.9]# ps -ef |grep redis
root 52757 1 1 18:33 ? 00:00:00 /usr/local/redis/bin/redis-server 127.0.0.1:6379
root 52763 42593 0 18:33 pts/0 00:00:00 grep --color=auto redis
[root@node3 redis-6.2.9]#
2 配置文件解析
Redis的配置文件redis.conf包含了大量的配置选项,以下是一些常用配置项的解析:
2.1 基本配置
- bind 127.0.0.1:指定Redis监听的网络接口,默认只监听本地回环地址
- port 6379:指定Redis监听的端口号,默认是6379
- daemonize no:是否以守护进程方式运行Redis,默认no,改为yes可以让Redis在后台运行
- pidfile /var/run/redis.pid:指定Redis进程ID文件的路径
2.2 日志配置
- loglevel notice:指定日志级别,可选值有debug、verbose、notice、warning
- logfile "":指定日志文件路径,如果为空则输出到标准输出
2.3 数据库配置
- databases 16:指定Redis默认的数据库数量,默认是16个
2.4 安全配置
- requirepass foobared:设置Redis的访问密码,默认是空的
2.5 客户端连接配置
- maxclients 10000:设置Redis同时可以有多少个客户端连接
3 持久化配置(RDB/AOF)
Redis支持两种持久化方式:RDB(快照)和AOF(追加文件)。
3.1 RDB(快照)
RDB持久化方式会在指定的时间间隔内生成数据集的快照。
- save 900 1:在900秒(15分钟)内,如果至少有1个键被修改,则生成快照
- save 300 10:在300秒(5分钟)内,如果至少有10个键被修改,则生成快照
- save 60 10000:在60秒内,如果至少有10000个键被修改,则生成快照
- dbfilename dump.rdb:指定RDB文件的名称
- dir ./:指定RDB文件的存储目录
3.2 AOF(追加文件)
AOF持久化方式会记录每次写操作,重启时重新执行这些操作来恢复数据。
- appendonly no:是否开启AOF持久化,默认no
- appendfilename "appendonly.aof":指定AOF文件的名称
- appendfsync everysec:指定AOF文件的同步策略,可选值有always、everysec、no
4 内存分配策略
Redis的内存分配策略可以通过以下配置项进行调整。
4.1 最大内存限制
- maxmemory :设置Redis可以使用的最大内存量,当达到最大内存限制时,Redis会根据配置的淘汰策略删除键
4.2 淘汰策略
- maxmemory-policy noeviction:设置内存达到最大限制时的淘汰策略,可选值有:
- noeviction:不删除键,返回错误
- allkeys-lru:从所有键中使用LRU算法淘汰
- volatile-lru:从设置了过期时间的键中使用LRU算法淘汰
- allkeys-random:从所有键中随机淘汰
- volatile-random:从设置了过期时间的键中随机淘汰
- volatile-ttl:从设置了过期时间的键中淘汰生存时间最短的键
4.3 内存碎片整理
- activedefrag yes:是否开启内存碎片整理,默认是no
- active-defrag-ignore-bytes 100mb:当内存碎片达到100MB时开始整理
- active-defrag-threshold-lower 10:内存碎片率低于10%时不整理
- active-defrag-threshold-upper 100:内存碎片率高于100%时开始整理
5 总结
通过本文的介绍,希望能够帮助你了解Redis在Linux系统上的单节点离线部署、配置文件解析、持久化配置以及内存分配策略等。