以下皆是思路
1、不用默认的序列化方式,重新设置序列化方式 参考文档https://cloud.tencent.com/developer/article/1894189
2、使用lettuce作为redis客户端,不用jedis客户端。参考文档https://blog.csdn.net/wangshuai6707/article/details/134442343
3、使用lettuce作为redis客户端不需要设置连接池,更高效
4、设置redis可使用的最大内存,最大设置服务器的4/3好了
5、达到了可使用的最大内存,内存满了设置淘汰策略,我个人认为是使用默认的淘汰策略,满了后面的写操作都报错,自动放弃写入。我认为内存满了都是代表有用的数据,除非开发人员瞎设置时间,明明5分钟有效的他给一天过期,大量设置这种缓存导致内存一下就使用完了。要不然开发合理,内存不够用就是内存给少了,直接加硬件。
6、进行内存预警,当使用到了最大内存的80%就发送邮件预警,提早分析内存的使用情况,用在了哪里,是否有不合理的数据占用了内存。
7、redis默认持久化是RDB,每隔一段时间进行一次增量备份,默认已开启。我个人感觉直接开启这个就行了,这个虽然会丢失一部分数据,但是效率高。还有一种AOF全量备份到文件,redis的每一个写操作都会记录到磁盘文件里保存起来,这个备份不会丢数据,但是效率低点。允许丢一部分数据的话就用RDB,服务开机自启动恢复数据。要完整数据就AOF也开起来,两种备份可以同时开,AOF备份就是命令读那个写操作文件,恢复时间长短看文件大小。