美文网首页码出未来Java成长之路Java 杂谈
Redis的数据类型和抽象概念介绍

Redis的数据类型和抽象概念介绍

作者: 码上搞定 | 来源:发表于2019-06-25 16:31 被阅读1次

Redis 不是一个 简单的 key-value 存储,实际上它是一个数据结构服务器,它支持不同类型的值。也就是说,在传统的key-value存储中,你将一个字符串的key关联到一个字符串的值上;而在Redis中,值不仅仅局限于简单的字符串,还同时支持其他复杂的数据结构。以下的列表是所有Redis支持的数据结构,在这篇指南中将一一介绍:

  • 二进制安全的字符串。
  • 列表[Lists]: 按照插入顺序排序的字符串元素集合。它们基于链表实现。
  • 集合[Sets]: 唯一的、无序的字符串元素集合。
  • 有序集合[Sorted sets]: 与集合类似,但是其中的每一个字符串元素都关联了一个浮点数值,称之为[score]。这些元素都是按照这个score来进行排序,所以它与集合不同,
    它可以获取一个元素范围(比如你可以说:给我最上面的10条数据,或者最下面的10条数据)。
  • 哈希[Hashes]: 由字段及相关联的值组成的maps。字段和值都是字符串。这非常类似于Ruby或者Python中的哈希。
  • 位数组(或者简单的bitmaps): 它可以使用特殊的命令,将字符串值处理为一个位的数组:你可以设置或者清空个别的位,统计所有设置为1的位,查找第一个设置或者没有设置的位等等。
  • HyperLogLogs: 这是一个基于概率的数据结构,它用于估算一个集合中的基数。不用担心,它没有看起来那么难… 稍候会在后续的HyperLogLog章节中对其进行介绍。

这些数据类型如何工作,以及通过这些命令命令参考如何去解决已有的问题,通常并不是那么容易理解的。所以这篇文档是关于Redis数据类型以及很多常见模式的一个速成教程。

所有的示例我们都将使用redis-cli 工具,它是一个简单,易使用的命令行工具,用于向Redis服务器发送指令。

Redis 的key

Redis 的key是二进制安全的,也就是说你可以使用任何二进制的序列作为key,从一个”foo”字符串到一个JPEG文件的内容都可以。空字符串也同样是一个有效的key。

一些其他的关于key的规则:

  • 使用非常长的key并不是好的主意,例如使用一个1024字节(bytes)长度的key就很烂,其不仅仅耗费内存,而且在数据集中查找这个key时也需要很高的比较成本。即使当前处理的任务是匹配存在的大值,采用哈希来处理(例如使用SHA1) 会是一个更好的主意,特别是从内存和带宽的角度来看。
  • 使用很短的key通常也不是一个好主意。将”u1000flw”作为一个key几乎是毫无意义的,如果你可以将其替换成”user:1000:followers”,则它会更具可读性,而由此增加的空间与key对象和值对象使用的空间比起来微乎其微。当简短的key将明显的消耗一小部分内存,你的工作就是寻找到一个正确的平衡点。
  • 尝试去坚持一个模式。例如使用”object-type:id”做为key就是一个好的想法,像”user:1000″。点或者虚线经常被用作多单词字段的连接符,例如”comment:1234:reply.to”或”comment:1234:reply-to”。
  • key最大可分配512MB。


Redis 的字符串类型[Strings]

Redis字符串类型是你能够与一个Redis的key关联的最简单的值类型。它也是Memcached中唯一的数据类型,所以新手可以很自然的在Redis中使用它。

Redis的key是字符串的,我们同样可以使用字符串类型来做为值,我们是将一个字符串映射到另一个字符串上。字符串数据类型在很多场景下是很有用的, 例如缓存HTML片段或者页面。

相关文章

  • Redis的数据类型和抽象概念介绍

    Redis 不是一个 简单的 key-value 存储,实际上它是一个数据结构服务器,它支持不同类型的值。也就是说...

  • 04_Redis集群

    redis主题 01_Redis介绍和安装运行02_Jedis的介绍和使用03_Redis数据类型和数据操作的命令...

  • 02_Jedis的介绍和使用

    redis主题 01_Redis介绍和安装运行02_Jedis的介绍和使用03_Redis数据类型和数据操作的命令...

  • 01_Redis介绍和安装运行

    redis主题 01_Redis介绍和安装运行02_Jedis的介绍和使用03_Redis数据类型和数据操作的命令...

  • 03_Redis数据类型和数据操作的命令

    redis主题 01_Redis介绍和安装运行02_Jedis的介绍和使用03_Redis数据类型和数据操作的命令...

  • Linux知识架构_Index

    redis主题01_Redis介绍和安装运行02_Jedis的介绍和使用03_Redis数据类型和数据操作的命令0...

  • Redis学习之路(4)命令-list(列表)、set(集合)、

    Redis 数据类型 Redis支持5种数据类型: 本段介绍一下list(列表)。 Redis 列表(List) ...

  • NoSQL二--Redis

    目录 一、Redis介绍二、安装Redis三、Redis 持久化四、Redis 的数据类型五、Redis常用操作六...

  • Redis系列第二篇:数据类型

    一、Redis数据类型 下图展示了Redis的五种数据类型及其介绍。 二、各种数据类型的操作 1. string ...

  • Redis入门

    学会如何安装和运行Redis,并了解Redis的基础知识后,本章将详细介绍Redis的5种主要数据类型及相应的命令...

网友评论

    本文标题:Redis的数据类型和抽象概念介绍

    本文链接:https://www.haomeiwen.com/subject/mktoqctx.html