########### 客户端连接数和空闲回收时间设置 #####################
#最大client连接数,默认10000 下面默认是注释掉的 代表不限制最大客户端连接(推荐不做限制)
#maxclients 10000
#Redis服务端检测client客户端连接闲置多少秒后,就强制断开回收连接,默认300(秒) 当然为了快速回收连接避免连接空置浪费,可以适当的调低该参数,比如设置为120
timeout 120
########### 内存策略设置 #####################
#最大内存使用设置,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。
#设置为0代表不做内存限制 一般推荐Redis设置内存为最大可用物理内存的四分之三(单位是byte字节)
maxmemory 0
#达到最大内存限制后的处理策略maxmemory-policy
#volatile-lru:从设置了过期时间的数据集中,选择最近最久未使用的数据释放
#allkeys-lru:从数据集中(包括设置过期时间以及未设置过期时间的数据集中),选择最近最久未使用的数据释放
#volatile-random:从设置了过期时间的数据集中,随机选择一个数据进行释放
#allkeys-random:从数据集中(包括了设置过期时间以及未设置过期时间)随机选择一个数据进行入释放
#volatile-ttl:从设置了过期时间的数据集中,选择马上就要过期的数据进行释放操作
#noeviction:(系统默认)不删除任意数据(但redis还会根据引用计数器进行释放呦~),这时如果内存不够时,会直接返回错误
maxmemory-policy noeviction
################ 交互内存设置 ###########
#是否开启VM功能,默认值为no(暂时不建议开启 因为目前还没证据表明MDM需要用到VM内存交互)
vm-enabled no
#vm-enabled yes
#虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享(不同实例设置不同的文件路径)
vm-swap-file /tmp/redis.swap
# 将全部大于vm-max-memory的数据存入虚拟内存,不管vm-max-memory设置多小,全部索引数据都是内存存储的 (Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,事实上是全部value都存在于磁盘。默认值为0。
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
#注意:Redis官方文档对VM的使用提出了一些建议:
#当你的key非常小而value非常大时,开启使用VM的效果会比較好.由于这样节约的内存比較大.
#vm-max-threads这个參数,能够设置訪问swap文件的线程数,设置最好不要超过机器的核数.假设设置为0,那么全部对swap文件的操作都是串行的.可能会造成比較长时间的延迟,可是对数据完整性有非常好的保证.
########### 开启RDB持久化 #####################
#RDB是默认的持久化策略 下面是设置RDB的频率
#考虑到MDM项目启动会出现大批量缓存数据写入的逻辑,所有下面的缓存频率做适当设置
#当有一条Keys数据被改变是,900秒刷新到disk一次
save 900 1
#当有10条Keys数据被改变时,600秒刷新到disk一次
save 600 10
#当有1w条keys数据被改变时,120秒刷新到disk一次
save 120 10000
#当dump .rdb数据库的时候是否压缩数据对象
rdbcompression yes
#本地数据库文件名称,默认值为dump.rdb
dbfilename dump.rdb
########### 关闭AOF持久化 #####################
#AOF持久化策略,是否在每次更新操作后进行日志记录,假设不开启,可能会在断电时导致一段时间内的数据丢失。由于redis本身默认持久化是按上面RDB方式来同步的,所以有的数据会在一段时间内仅仅存在于内存中,AOF默认值为no不开启,如果业务对缓存的数据完整性和一致性要求不高,上面的默认的RDB已是很好的选择(MDM项目默认选择上面的RDB即可 关闭下面的AOF)
appendonly no
redis性能优化设置
最新推荐文章于 2024-08-15 10:56:50 发布