如何提升Ubuntu环境下Redis性能
maxmemory:根据服务器内存容量(建议为物理内存的50%-70%)配置maxmemory参数(如maxmemory 4gb),避免Redis占用过多内存导致系统交换(swap),严重影响性能。maxmemory-policy:当内存达到上限时,通过maxmemory-policy指定淘汰策略。常用策略包括allkeys-lru(淘汰最近最少使用的键,适用于所有键)或volatile-lru(仅淘汰设置了过期时间的键),优先保留高频访问数据。save指令设置触发频率(如save 900 1表示900秒内至少1次修改则保存),生成紧凑的二进制文件,减少磁盘I/O。appendonly yes,并将appendfsync设为everysec(每秒同步一次),兼顾性能与数据安全(折中方案,比always更高效,比no更安全)。bind指令指定Redis监听的IP地址(如bind 0.0.0.0允许所有IP访问,生产环境建议限制为特定IP段),减少非法连接请求。/etc/sysctl.conf文件,增加net.core.somaxconn(TCP连接队列大小,如net.core.somaxconn=1024),避免高并发时连接被拒绝。hash(节省内存,支持字段级操作);list(支持快速插入/删除);set(去重、快速交集/并集操作)。unlink命令异步删除(避免阻塞主线程),或分片存储(如将大hash拆分为多个小hash)。redis-cli --stat命令查看实时性能指标(如QPS、内存使用率、连接数),或通过第三方工具(如RedisInsight、Prometheus+Grafana)实现可视化监控。scan命令查找并删除过期或无效的键(避免内存泄漏);SORT、ZUNIONSTORE等高CPU消耗的命令(可通过rename-command指令禁用,如rename-command SORT "")。pipeline批量执行),减少单次命令的执行时间(降低阻塞概率)。