1,停止使用 KEYS *,如果避免不了,请使用scan命令 2,精简键名和键值,减小key长度,压缩value 3,设置 key 值的过期时间,避免长时间占用内存,缓解同步和持久化的压力 4,选择合适的回收策略,如果不能丢数据则建议使用 volatile-lru 策略,如果key可以自动重建则推荐allkeys-lru 5,业务层要考虑读写分离和主从模式 6,合理分配snapshot,aof,主上关闭aof和snapshot,在主从上开启snapshot和aof 7,如果数据不需要持久,可关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量 8,合理选择最优的数据结构解决实际问题,那样既可以提高效率又可以节省内存 9,合理使用长连接 10,当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量,如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。 11,不要让你的Redis所在机器物理内存使用超过实际内存总量的3/5。 12,根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。