【技术栈】Redis 的理解与数据存储格式

SueWakeup

                                                      个人主页:SueWakeup

                                                      系列专栏:学习技术栈

                                                      个性签名:保留赤子之心也许是种幸运吧 

本文封面由 凯楠📸 友情提供

目录

相关传送门

 1. NOSQL和关系型数据库比较

 2. 主流的NOSQL产品

 3. Redis的理解

 4.  redis数据存储格式

4.1 String

4.2 Hash

4.3 List

4.4 Set

4.5. sorted_set

注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转   


本栏传送门

1.【技术栈】Redis 的理解与数据存储格式

2.【技术栈】Redis 中的事务及持久化方式

3.【技术栈】Redis 删除策略

4.【技术栈】Redis 企业级解决方案

5.【数据结构】布隆过滤器

6.【开发】SpringBoot 整合 Redis

7.【技术栈】Spring Cache 简化 Redis 缓存使用


 1. NOSQL和关系型数据库比较

优点:低成本、高查询、存储格式丰富、支持多种数据类型

  1. nosql简单易部署,且多数开源
  2. nosql将数据存储在缓存之中,sql将数据存储在硬盘中;nosql比sql数据库查询速度快
  3. nosql的存储格式是键值对形式,文档形式、图片形式等,可以存储基础类型以及对象或者集合等格式,sql支支持基础数据
  4. 关系型数据库有类似Join的多表查询机制限制扩展很艰难

缺点:维护技术有限、学习使用成本高、不提供关系型数据库对事务的处理

  1. 新技术,维护工具
  2. 不遵循SQL标准,学习使用成本高
  3. 不提供关系型数据库对事务的处理

 2. 主流的NOSQL产品

  • 键值(Key-Value)存储数据库
    • 相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

    • 典型应用: 内容缓存,主要用于处理大量数据的高访问负载。数据模型: 一系列键值对

    • 优势: 快速查询

    • 劣势: 存储的数据缺少结构化

  • 列存储数据库

    • 相关产品:Cassandra, HBase, Riak

    • 典型应用:分布式的文件系统

    • 数据模型:以列簇式存储,将同一列数据存在一起

    • 优势:查找速度快,可扩展性强,更容易进行分布式扩展劣势:功能相对局限

  • 文档型数据库

    • 相关产品:CouchDB、MongoDB

    • 典型应用:Web应用(与Key-Value类似,Value是结构化的) 数据模型: 一系列键值对

    • 优势:数据结构要求不严格

    • 劣势: 查询性能不高,而且缺乏统一的查询语法

  • 图形(Graph)数据库

    • 相关数据库:Neo4J、InfoGrid、Infinite Graph

    • 典型应用:社交网络数据模型:图结构

    • 优势:利用图结构相关算法。

    • 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

数据库排名:http://db-engines.com/en/ranking


 3. Redis的理解

概念:C语言开发的一个开源的高性能键值对存储形式的数据库

特征:

1. 数据之间没有必然的关联关系

2. 内部采用单线程机制进行工作

3. 高性能

4. 多数据类型支持

名称类型数据结构
字符串类型String 

String

列表类型list

LinkedList

散列类型hash

HashMap

集合类型 set

HashSet

有序集合类型sorted_set

TreeSet

5. 持久化支持。可以进行数据灾难恢复


 4.  redis数据存储格式

  • redis自身是一个map所存储的数据都采用键值对的形式存储
  • key部分永远都是字符串,value部分指的是存储的数据的类型
    • key的语法:
    • 在同一个项目中,key部分最好使用统一的命名模式
    • key区分大小写
    • key尽量不超过1024字节。不仅消耗内存,也会降低查找的效率
    • key不易太短,太短会降低可读性

4.1 String

  • 存储的数据:单个数据,最简单最常用的数据存储类型
  • 存储的数据格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作用数字操作使用

4.2 Hash

  • 存储的困惑:对象类数据的存储如果具有频繁的更新需求会显得笨重
  • 哈希的特点:
    • 存储需求:对一系列存储的数据进行编组,方便管理
    • 存储结构:一个存储空间保存多个键值对数据
    • hash类型:底层使用哈希表结构实现数据存储
  • hash存储结构优化
    • 如果filed数量较少,存储结构优化为类数组结构
    • 如果filed数量较多,存储结构使用HashMap结构

4.3 List

  • 存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
  • 存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • list类型:保存多个数据,底层使用双向链表存储结构实现

4.4 Set

  • 存储需求:存储大量的数据,在查询方面提供更高的效率
  • 存储结构:存储大量的数据,高效的内部存储机制,便于查询
  • set类型:与hash存储结构完全相同,仅存储键,不存储值,并且值是不允许重复的

4.5. sorted_set

  • 存储需求:数据排序 有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值