天天看点

redis学习笔记二(redis的数据类型)

之前在学习的时候我看到了关于redis数据类型的描述,于是就华丽的跳过了这个部分,但是我马上在之后的学习中遇见了困难,所以在这里我还是用简单的篇幅讲redis的数据类型从新整理一下,以备不时之需。

String 字符串

这个是redis默认的基本类型,我们之前的关于set和get的操作操作的其实都是这种类型的数据,但是事实上String并不是非得存放String类型的数据,因为这个Stirng是二进制安全的,所以我们其实可以把文件encode一下变成String进行存储到redis中来,每个String的value最多能存到512M,所以基本上大部分的文件什么的都其实可以直接使用String来进行存储。

具体的操作实例我们在这里可以直接的略了,和之前的安装的时候的测试方法一致

Hash 哈希

在redis中哈希是一种特有的数据类型,基本上可以看作是一个类似于java中的hashMap的东西,所以我们回顾我们在java中的hashmap我们就能发现这个哈希的数据类型需要一下这几种要素。

我们在这里先看一个操作实例

redis学习笔记二(redis的数据类型)

Java      redis

  HashMap的对象名   myhashtest

  元素键值                   name、age、job

  元素内容               zhengfang.sun、24、none

所以说这个hashMap和redis中的hash基本上非常的像,而且就其形式而言非常适合存储对象,因为对象都是基本上 属性 - 属性值以及 方法-方法体这种的类型来构成的,所以也都能够被hash的键值的形式进行存储。

List(列表)

在redis中列表的性质和我们之前了解到的大概稍微有点区别,他在这里的List更类似于一个双头开口的栈。

首先就是List中其实只是最简单的String类型的数据,这个和在Java中存储任意对象的List有较大区别,其次List只能支持左端插入或者是右端插入,使用的命令也是PUSH,所以在我的理解里面这个东西其实有点类似于可以在栈地步插入数据的栈。

以下是我们对于简单List的操作实例

redis学习笔记二(redis的数据类型)

在这个例子中我们能清楚的感觉到最后在我们list中的所有数据的排列顺序

头 4st  3st  the_first  2st尾

所以我们的lrange从左端开始读取的时候会呈现上面测试的时候的这种情况,其中我们在后面加的0 10是指输出的下标从0到10的所有元素

注:在这里的lrange是一个专有的名称,并不存在和他对应的rrange

Set(集合)

在redis中的set的概念有点特别,就是一个内容不能重复的String的集合,所以在这里我们可以通过简单的例子来明确这个概念。

redis学习笔记二(redis的数据类型)

这里我们可以看到我们在第二次插入myset03的时候就出现了返回是0的情况,插入不成功,同时在最后的遍历中我们看到也只有一个mytest03的元素

zset(sorted set:有序集合)

有序集合顾名思义就是带序号的集合,所以在这个集合里面和我们之前看到的set的区别就是这个集合在插入数据的时候同时需要给定一个序号

Zadd 集合名称 序号String内容

而我们的遍历使用的也是zRangeByScore就是按照序号升序排列

redis学习笔记二(redis的数据类型)

继续阅读