如何保证Redis中存的都是热点数据?
2023-09-11 14:16:49 时间
具体的可以看之前的这篇博客,考的就是Redis的逐出算法。
达到最大内存后的,对被挑选出来的数据进行删除的策略
影响数据逐出的相关配置
检测易失数据(可能会过期的数据集server.db[i].expires )
① volatile-lru:挑选最近最少使用的数据淘汰
② volatile-lfu:挑选最近使用次数最少的数据淘汰
③ volatile-ttl:挑选将要过期的数据淘汰
④ volatile-random:任意选择数据淘汰
检测全库数据(所有数据集server.db[i].dict )
⑤ allkeys-lru:挑选最近最少使用的数据淘汰
⑥ allkeys-lfu:挑选最近使用次数最少的数据淘汰
⑦ allkeys-random:任意选择数据淘汰
放弃数据驱逐
⑧ no-enviction(驱逐):禁止驱逐数据( redis4.0中默认策略),会引发错误OOM( Out Of Memory)
场景:
数据库中有1000w的数据,而redis中只有50w数据,如何保证redis中数据都是热点数据?
方案:
限定 Redis 占用的内存,Redis 会根据自身数据淘汰策略,留下热数据到内存。所以,计算一下 50W 数据大约占用的内存,然后设置一下 Redis 内存限制即可,并将淘汰策略为volatile-lru或者allkeys-lru。
设置Redis最大占用内存:
打开redis配置文件,设置maxmemory参数,maxmemory是bytes字节类型
相关文章
- 使用Redis存储聊天数据的一种方案(使用lua解决原子性问题)
- 从MySQL到Redis 提升数据迁移的效率
- Redis学习(8)-redis持久化
- redis集群之REDIS CLUSTER
- 使用redis避免客户端频繁提交数据
- redis make test 报错
- Redis-Cluster实战--5.使用redis-cli安装
- Redis 删除数据后,为什么内存占用率还是很高?
- Redis数据清除问题
- 〖Python 数据库开发实战 - Python与Redis交互篇⑫〗- 综合案例 - 新闻管理系统 - 删除新闻(含redis缓存)
- 如何应对Spark-Redis行海量数据插入、查询作业时碰到的问题
- Redis 3.2.1集群搭建
- Redis-3.2.0集群配置(redis cluster)
- 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
- Redis的发布订阅(消息队列,比如ActiveMQ,一方得到数据后,多方得到信息)
- “位图(BitMaps):Redis中高效存储布尔类型数据的利器”
- Redis is configured to save RDB snapshots redis的 rdb持久化错误
- redis单线程原理___Redis为何那么快-----底层原理浅析