IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 内存数据库Redis、memorycache -系统架构师考试 -> 正文阅读

[大数据]内存数据库Redis、memorycache -系统架构师考试

MemCache 和 Redis 两种工具的优缺点进行了比较

MemCacheRedis
数据类型key/waluehash、string、lists、sets、zsets、sorted
分布式存储支持多种方式、主从、哨兵、集群等
多线程支持支持不支持
内存管理
事务支持不支持有限支持

Memcache没有持久化功能,所以掉电数据会全部丢失,而且无法直接恢复,这存在可靠性问题。
Memcache不支持事务,所以操作过程中可能产生数据的不一致性。

Redis的同步方案

读取数据时,先读取Redis中的数据,如果Redis没有,则从原数据库中读取,并同步更新Redis中的数据,写回时,写入到原数据库中,并同步更新至Redis中。

Redis分布式存储的集中种常见方案

redis分布式存储的常见方案有3种:
1.主从(Master/Slave)模式;
2.哨兵(Sentinel)模式;
3.集群(Cluster)模式

redis集群切片的常见方式有:
1.客户端实现分片。分区逻辑在客户端实现,客户端采用一致性哈希决定redis节点。
2.中间件实现分片。在应用软件和redis之间,例如Twemproxy、Codis等,由中间件实现服务到后台redis节点的路由分派。
3.客户端服务端协作分片。redis cluster集群模式,客户端采用一致性哈希,服务端提供错误节点的重定向服务。

Redis的持久化方式

RDB

RDB是将支持当前数据的快照存成一个数据文件的持久化机制。
1.在生成快照时,将当前进程fork出一个子进程.
2.然后再子进程中循环所有的数据,将数据写入到二进制文件中。
3.当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程退出。

AOF

AOF: Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。AOF的工作原理就是是将写操作追加到文件中,文件的冗余内容会越来越多。所以Redis 新增了重写机制。当AOF文件的大小超过所设定的最大值时,Redis就会对AOF文件的内容压缩

AOFRDB
数据磁盘更新频率频率高频率低
数据安全较高较低
数据一致性一致性好较差
重启性能较差较好
数据文件大小

Redis的过期清除策略

1、定期删除

定期删除类似一个守护线程,每间隔一段时间就执行一次(默认100ms一次,可以通过修改配置文件redis.conf 的 hz 选项来调整这个次数),将过期的Key进行删除

2、惰性删除

惰性删除即当查询某个Key时,判断该key是否已过期,如果已过期则从缓存中删除,同时返回空。

3、内存淘汰

在配置文件redis.conf 中,可以通过参数 maxmemory 来设定最大内存,当数据内存达到 maxmemory 时,便会触发redis的内存淘汰策略(我们一般会将该参数设置为物理内存的四分之三)。
当 Redis 的内存超过最大允许的内存之后,Redis 会触发内存淘汰策略。(过期策略是指正常情况下清除过期键,内存淘汰是指内存超过最大值时的保护策略)。内存淘汰策略可以通过maxmemory-policy进行配置,目前Redis提供了以下几种(2个LFU的策略是4.0后出现的):
volatile-lru,针对设置了过期时间的key,使用lru算法进行淘汰。
allkeys-lru,针对所有key使用lru算法进行淘汰。
volatile-lfu,针对设置了过期时间的key,使用lfu算法进行淘汰。
allkeys-lfu,针对所有key使用lfu算法进行淘汰。
volatile-random,从所有设置了过期时间的key中使用随机淘汰的方式进行淘汰。
allkeys-random,针对所有的key使用随机淘汰机制进行淘汰。
volatile-ttl,针对设置了过期时间的key,越早过期的越先被淘汰。
noeviction,不会淘汰任何数据,当使用的内存空间超过 maxmemory 值时,再有写请求来时返回错误。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:04:09  更:2022-10-31 12:06:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:47:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码