文档章节

redis(5)、redis最大缓存设置策略

haoran_10
 haoran_10
发布于 2016/07/15 16:36
字数 573
阅读 80
收藏 1

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

 

一、最大缓存设置

示例:maxmemory 100mb 

单位:mb,gb。

默认为0,没有指定最大缓存,如果有新的数据添加,超过最大内存,则会使redis崩溃,所以一点要设置。

设置maxmemory之后,配合的要设置缓存数据回收策略。

 

二、回收策略算法设置

 当maxmemory限制到达的时候,Redis将采取的准确行为是由maxmemory-policy配置指令配置的。 
    以下策略可用: 
(1)、noeviction:当到达内存限制时返回错误。当客户端尝试执行命令时会导致更多内存占用(大多数写命令,除了DEL和一些例外)。
(2)、allkeys-lru:回收最近最少使用(LRU)的键,为新数据腾出空间。
(3)、volatile-lru:回收最近最少使用(LRU)的键,但是只回收有设置过期的键,为新数据腾出空间。
(4)、allkeys-random:回收随机的键,为新数据腾出空间。
(5)、volatile-random:回收随机的键,但是只回收有设置过期的键,为新数据腾出空间。
(6)、volatile-ttl:回收有设置过期的键,尝试先回收离TTL最短时间的键,为新数据腾出空间。
 

使用策略规则:

(1)、如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低,则使用allkeys-lru。

(2)、如果数据呈现平等分布,也就是所有的数据访问频率都相同,则使用allkeys-random。

 

redis回收算法,实际不是严谨的LRU算法,而是抽样回收数据,这样算是为了减少消耗内存使用,但是抽样回收的缓存和全部数据回收缓存差异非常小,或者根本就没有。

 

三、生产使用

(1)、先预测好系统所需要的内存高峰,部署相对应内存的缓存服务器。

(2)、设置maxmemory和相对应的回收策略算法,设置最好为物理内存的3/4,或者比例更小,因为redis复制数据等其他服务时,也是需要缓存的。 以防缓存数据过大致使redis崩溃,造成系统出错不可用。牺牲一部分缓存数据,保存整体系统可用性。

© 著作权归作者所有

haoran_10
粉丝 27
博文 89
码字总数 82446
作品 0
杭州
程序员
私信 提问
加载中

评论(0)

Redis与Memcached的区别

memcached和redis的区别 区别: 1、数据类型不同,memcached只支持key-value,redis支持String,List,Map,set,sorted Set 2、memcached保存在内存中,redis内存和文件里面都有保存,宕机之...

underA
2013/05/15
159
0
Redis如果内存满了怎么办?

Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 1、通过配置文件配置 通过在Red...

osc_x3oekcq2
2019/09/11
2
0
redis 提供 6种数据淘汰策略

###淘汰策略的原因在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的。譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 1.5G...

osc_zuzeo6xq
2019/05/30
1
0
Redis---键的过期时间及数据淘汰策略

5.键的过期时间   Redis可以为每个键设置过期时间,当键过期时,会自动删除该键。   对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时...

osc_4nbpryu9
2019/07/04
2
0
Redis系列--内存淘汰机制(含单机版内存优化建议)

https://blog.csdn.net/JackFrost/article/details/72478400?locationNum=13&fps=1 每台redis的服务器的内存都是有限的,而且也不是所有的内存都用来存储信息。而且redis的实现并没有在内存这...

osc_n86o8vc0
2018/08/01
2
0

没有更多内容

加载失败,请刷新页面

加载更多

spring boot 设置任务调度线程池大小和线程前缀

编辑文件application.properties,加入如下: spring.task.scheduling.pool.size =10spring.task.scheduling.thread-name-prefix = sche_prefix-...

jingshishengxu
23分钟前
26
0
mongodb CRUD以及Aggregation常用操作

CRUD操作集 1)查询只展示需要的列db.collection.find({age : {$gt : 30} }, {name: 1, age: 1, _id: 0})2)查询有name字段且值为null的记录db.collection.find({name : {$type : 10} })......

简到珍
今天
29
0
wellcms2.0伪静态配置

目标格式 /user/login.html apache RewriteEngine on# Apache 2.4RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*?)([^/]*).html(.*)$ inde......

cs_sharp
今天
8
0
部署异步下载服务

异步下载 一、背景 目前系统对于大文件的下载慢、导出慢、大量的接口占用服务器带宽等问题,严重影响用户的体验,基于此背景,开发并实现了异步下载功能。 二、项目结构 脑图思路 三、环境准...

荼靡旖旎
今天
25
0
(转)Marathon私有镜像仓库用户名和密码方式

下载镜像需要输入用户名和密码的时候,marathon发布这样的images需要用这种方法。 首先需要手动登入镜像仓库。 docker login db-registry.inc-test.com Username: admin Password: D...

osc_5p8bxoq2
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部