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 -> 正文阅读

[大数据]Redis

Redis 学习记录

Redis: Remote Dictionary Service 远程字典服务

SQL和NoSql的区别:

存储类型:

String:

存储类型:
可以用来存储字符串、整数、浮点数。

1、int:存储8 个字节的长整型(long,2^63-1)。
2、embstr: 代表embstr 格式的SDS(Simple Dynamic String 简单动态字符串),
存储小于44 个字节的字符串。
3、raw:存储大于44 个字节的字符串(3.2 版本之前是39 字节)。

应用场景:
1、热点数据缓存
2、对象缓存

redis 内部编码的转换,都符合以下规律:

编码转换在redis写入数据时完成,且转换过程不可逆,只能从小内存编码向大内存编码转换(不包括重新set)

Hash:

存储类型:
包含键值对的无序散列表。value 只能是字符串,不能嵌套其他类型。
Redis 的Hash 本身也是一个KV 的结构,类似于Java 中的HashMap。

1、ZipList(压缩列表):

当hash 对象同时满足以下两个条件的时候,使用ziplist 编码:
1)所有的键值对的健和值的字符串长度都小于等于64byte(一个英文字母
一个字节);
2)哈希对象保存的键值对数量小于512 个。

一个哈希对象超过配置的阈值(键和值的长度有>64byte,键值对个数>512 个)时,
会转换成哈希表(hashtable)。

2、HashTable(哈希表):

在Redis 中,hashtable 被称为字典(dictionary),它是一个数组+链表的结构。

应用场景:
存储对象类型的数据,如商品详情,个人详情等数据

List:

存储类型:
存储有序的字符串(从左到右),元素可以重复。可以充当队列和栈的角色。

quickList:

quicklist(快速列表)是ziplist 和linkedlist 的结合体。quicklist.h,head 和tail 指向双向列表的表头和表尾

typedef struct quicklist {
quicklistNode *head; /* 指向双向列表的表头*/
quicklistNode *tail; /* 指向双向列表的表尾*/
unsigned long count; /* 所有的ziplist 中一共存了多少个元素*/
unsigned long len; /* 双向链表的长度,node 的数量*/
int fill : 16; /* fill factor for individual nodes */
unsigned int compress : 16; /* 压缩深度,0:不压缩; */
} quicklist;

![]在这里插入图片描述

Set:

存储类型:
String 类型的无序集合,最大存储数量2^32-1(40 亿左右)。

intSet : 如果元素都是整数类型,就用inset 存储。
HashTable: 如果不是整数类型,就用hashtable(数组+链表的存来储结构)。如果元素个数超过512 个,也会用hashtable 存储。

SortedSet:

存储类型:
sorted set,有序的set,每个元素有个score。
score 相同时,按照key 的ASCII 码排序。

zipList:
同时满足以下条件时使用ziplist 编码:1、元素数量小于128 个 2、所有member 的长度都小于64 字节,超过阈值之后,使用skiplist+dict 存储。

skipList + dict:

内存回收:

持久化策略:

RDB:
RDB是Redis默认的持久化方案,当满足一定的条件,会把当前内存中的数据写入磁盘,生成一个快照文件dump.rdb。Redis可以通过加载这个文件来恢复数据。
AOF:
AOF采用日志的格式来记录每个写操作,并追加到文件中。开启后,执行redis的数据命令后,就会把命令写到aof文件中去。
Redis重启时会根据日志文件的内容把写指令从前向后执行一遍,以完成数据的恢复工作。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 11:00:15  更:2021-10-22 11:01:00 
 
开发: 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/24 4:04:48-

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