在Ubuntu上提升Redis速度可从配置优化、硬件资源、数据结构及持久化等方面入手,具体如下:
-
优化配置参数
- 内存管理:在
/etc/redis/redis.conf中设置maxmemory限制内存使用,并选择合适淘汰策略(如allkeys-lru)。 - 网络优化:调整
tcp-backlog(如设为511)、timeout(如300秒)和tcp-keepalive(如60秒)参数,提升连接效率。 - 多线程优化:设置
io-threads(通常为CPU核心数-1)并启用io-threads-do-reads,利用多核处理读请求。
- 内存管理:在
-
选择高效数据结构
- 用Hash替代String存储结构化数据,减少内存占用;合理配置Hash的
ziplist阈值(如hash-max-ziplist-entries 512)。 - 避免存储过大Key/Value,拆分大Key以降低内存碎片。
- 用Hash替代String存储结构化数据,减少内存占用;合理配置Hash的
-
合理使用持久化
- RDB配置:通过
save参数设置快照频率(如save 900 1),平衡数据安全与性能。 - AOF配置:启用
appendonly yes,并设置appendfsync everysec,在数据完整性和性能间取得平衡。
- RDB配置:通过
-
硬件与系统优化
- 使用SSD硬盘提升读写速度,确保服务器有足够内存和CPU资源。
- 调整系统内核参数(如
vm.overcommit_memory=1、net.core.somaxconn=1024)以适配Redis。
-
其他优化技巧
- 启用连接池复用连接,减少连接建立开销。
- 避免执行耗时操作(如大Key删除),使用
lazy free特性异步释放内存。 - 定期监控内存使用、命令延迟等指标,通过
redis-cli --bigkeys定位大Key。
修改配置前建议先在测试环境验证,确保不影响业务。