|
|
|
|
移动端

亿豪娱乐公司介绍:详解 Redis 内存淘汰机制和持久化机制原理 剖析Redis必备!

本文来源:http://www.2233122.com/digi_sina_com_cn/

太阳城娱乐网最快登入,刘亮被拐时,不到5岁。而这个行业并购的就是土地的价值。其中,建设银行、工商银行可以通过柜台、客服电话进行撤销转账操作,农业银行可以通过柜台、客服电话、ATM机撤销转账,中国银行支持ATM机撤销转账。”孙宏斌称,去年销售额前10名的房企,占全部份额的比例是17%,今年到10月底已经20%多了,前100名的占比已经40%多了。

  亟须供需两侧同时发力  有网民表示,限购只是治标,起到的只是缓解作用。  2、咖啡加盟品牌的管理能力  (1)考察咖啡店加盟品牌整个运营流程,在管理上是否舒畅,是否可以保障整个的运营环节可以顺畅的接入。大家都是有自己的立场,而我知道立场都是善良的,没有是谁故意炒什么,更没有人是故意伤害什么的。  限购限贷抑涨作用有限  舆论认为,此轮房价疯涨并非偶然。

  另外,从12月1日起,张家界武陵源景区将执行淡季门票价格,从普通票价每人次245元降低至每人次136元(学生票执行85元)。    10月31日,在股市老妖,提出的宝莫股份(002476)近日也是收获满满,关注我的粉丝们,不知道有没有及时进场,关注股市老妖分析!    最近很多股民抱怨说,他们炒股都是在亏钱,原因是一不会选股,二不会把握股票买卖点,三不会技术分析。2002-2003赛季第二阶段小组赛,皇马主场2-1取胜。  9月27日,孙宏斌认购融创的4.53亿股新股,总代价约28亿港元,孙宏斌在融创的持股比例也由近47%提升至53.22%,这或许也是孙宏斌面对资本市场质疑进行的回应。

假设生产环境里面MySQL 数据库有 1000w 数据,Redis 中只存 10w 的数据,如何保证 Redis 中的数据都是热点数据?

作者:波波说运维来源:今日头条|2019-11-12 14:15

 概述

前段时间有朋友问了关于Redis 内存淘汰机制和持久化机制原理,今天抽空整理了下分享给大家,内容如下:

  • Redis 内存淘汰机制
  • Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复)

Redis 内存淘汰机制

假设生产环境里面MySQL 数据库有 1000w 数据,Redis 中只存 10w 的数据,如何保证 Redis 中的数据都是热点数据?

Redis 提供 6 种数据淘汰策略:

  • volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰。
  • volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰。
  • volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰。
  • allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key(这个是最常用的)。
  • allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰。
  • no-enviction:禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错。这个应该没人使用吧!

通过这 6 种数据淘汰策略redis来保证Redis 中的数据都是热点数据

Redis 持久化机制

很多时候我们总会碰到服务器挂掉或者不小心杀了进程之类的情况,那么怎么保证 Redis 挂掉之后再重启数据可以进行恢复?

实际上我们只需要持久化数据也就是将内存中的数据写入到硬盘里面。

大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了防止系统故障而将数据备份到一个远程位置。

Redis 不同于 Memcached 的很重要一点就是,Redis 支持持久化,而且支持两种不同的持久化操作。

Redis 的一种持久化方式叫快照(snapshotting,RDB),另一种方式是只追加文件(append-only file,AOF)。

下面讲下这两种持久化方式。

快照(snapshotting)持久化(RDB)

Redis 可以通过创建快照来获得存储在内存里面的数据在某个时间点上的副本。

Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。

快照持久化是 Redis 默认采用的持久化方式,在 redis.conf 配置文件中默认有此下配置:

save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,Redis就会自动触发BGSAVE命令创建快照。 save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,Redis就会自动触发BGSAVE命令创建快照。 save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,Redis就会自动触发BGSAVE命令创建快照。

AOF(append-only file)持久化

与快照持久化相比,AOF 持久化的实时性更好,因此已成为主流的持久化方案。

默认情况下 Redis 没有开启 AOF(append only file)方式的持久化,可以通过 appendonly 参数开启:

  1. appendonly yes 

开启 AOF 持久化后每执行一条会更改 Redis 中的数据的命令,Redis 就会将该命令写入硬盘中的 AOF 文件。

AOF 文件的保存位置和 RDB 文件的位置相同,都是通过 dir 参数设置的,默认的文件名是 appendonly.aof。

在 Redis 的配置文件中存在三种不同的 AOF 持久化方式,它们分别是:

  1. appendfsync always #每次有数据修改发生时都会写入AOF文件,这样会严重降低Redis的速度  
  2. appendfsync everysec #每秒钟同步一次,显示地将多个写命令同步到硬盘  
  3. appendfsync no #让操作系统决定何时进行同步  

为了兼顾数据和写入性能,用户可以考虑 appendfsync everysec 选项 ,让 Redis 每秒同步一次 AOF 文件,Redis 性能几乎没受到任何影响。

而且这样即使出现系统崩溃,用户最多只会丢失一秒之内产生的数据。当硬盘忙于执行写入操作的时候,Redis 还会优雅的放慢自己的速度以便适应硬盘的最大写入速度。

Redis 4.0 对于持久化机制的优化

Redis 4.0 开始支持 RDB 和 AOF 的混合持久化(默认关闭,可以通过配置项 aof-use-rdb-preamble 开启)。

如果把混合持久化打开,AOF 重写的时候就直接把 RDB 的内容写到 AOF 文件开头。

这样做的好处是可以结合 RDB 和 AOF 的优点, 快速加载同时避免丢失过多的数据。

当然缺点也是有的,AOF 里面的 RDB 部分是压缩格式不再是 AOF 格式,可读性较差。

【编辑推荐】

  1. Redis内存爆炸增长?你需要知道这一套Redis内存分析方法
  2. 聊聊关于Redis中16个默认数据库的知识
  3. Redis中8种数据结构的底层数据结构源码详解
  4. 聊聊原子变量、锁、内存屏障那点事
  5. 你居然还不知道MySQL存储引擎InnoDB分为内存架构、磁盘架构?
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

384人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

137人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

286人订阅学习

读 书 +更多

Scrum敏捷项目管理

本书详细描述如何在复杂技术项目中使用Scrum,并结合真实的Scrum案例及专家洞识,在简明及高度概括的理论之上更侧重于实践,并不断强调Scru...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微

申博提款最快登入 旧版太阳城申博开户 菲律宾申博官方网址 申博代理官网登入 菲律宾申博直营网 太阳城亚洲官方网址登入
www.tyc123.com 新版太阳城申博开户 申博电子游戏 菲律宾太阳网娱乐登入 申博真人游戏直营网 申博登录不了
申博游戏网直营 申博游戏苹果手机能玩吗 太阳城注册开户登入 申博代理有限公司登入 申博太阳城娱乐官网登入 ab7777.com