欢迎投稿

今日深度:

Redis学习笔记(二)-四种复合数据类型,redis学习笔记

Redis学习笔记(二)-四种复合数据类型,redis学习笔记



Redis学习笔记(二)-四种复合数据类型

继续上次的进行,第一篇重要学习了Redis的一些基本概念和基本操作语句,对Redis有了一个大概的认识,并且会简单使用,第一篇中忘记说明Redis的安装方法,这个很简单,上官网下载安装包解压即可。

这一次主要展开学习一下Redis的四种高级数据类型:(除字符串外)
1. 散列类型
2. 列表类型
3. 集合类型
4. 有序集合类型

我的这些学习笔记都是自己花心思整理出来的干货,希望能对也在学习的你起到帮助的作用,也可以方便自己以后查看和复习。


散列类型
散列类型的含义就是一个key对应着一个value,而value内部是一系列的key-value合集(也就是一个散列表)。类似于下面这个示例:

散列可以理解为两层JSON的嵌套,这种数据类型在现实中可以存储和表达很多类型的数据,是key-value数据库数据格式的一种基础升级,可以用散列存储一些较为复杂的数据,就比如上面的这个汽车的例子,这样存储以来,就可以通过car:2这个键直接获取到一系列描述这个键的键值对。

比如用散列来存储一篇博客:

这就是存储一个更为复杂的数据的例子,可以看出来,在现实网络环境中,绝大多数的数据对象都可以抽象成一个散列来存储。这也就是为什么散列在Redis里有着很基础也很重要的作用。


下面简单介绍下散列的一些基本命令,可以覆盖到绝大多数应用场景
散列的命令:

总结:
可以通过以上的命令和介绍看出来,散列是一个升级版的key-value,是一个我们理解的嵌套的JSON数据,它在现实场景中可以更灵活的表达更多的数据类型和抽象对象。在维护上来看,它也是要比字符串更方便维护,所以任何复杂对象都可以用散列来表达和封装,而简单的单属性的内容就可以直接用字符串来存储。


列表类型

列表类型可以存储一个有序的字符串列表(list),列表类型内部使用的是双向链表,这样访问头和尾的数据的速度就会非常快。

命令:

总结:
列表就相当于链表一样,可以存储很多有序的数据,并且可以快速的找到你所需要的数据,列表类型在现实应用中也是有着很广泛的应用。


集合类型

集合中的每个元素都是不同的,且没有顺序。一个集合类型键可以存储最多 2^32 -1 个字符串。集合类型常用的操作有插入,删除,判断元素是否存在。由于集合在Redis内部实现是由hash table实现的,所以这些操作的复杂度都是O(1)的。最方便的是多个集合类型键之间还可以进行交集,并集和差集的运算。

命令:

总结:
集合就相当于编程语言中的Set,是一系列元素的集合,但是无序的,而且不能有重复的数据。同样的,在现实环境下有着很广泛的应用。


有序集合

最后,来说一下有序集合。
列表是通过链表来实现的,它获取靠近两端的数据非常快,但是获取中间的的数据会比较慢。所以它更适合实现如“新鲜事”,“日志”等很少访问中间元素的应用。

有序集合是通过散列表和跳跃表实现的,所以即使读取位于中间的数据也很快。列表不能简单的调整某个元素的位置,但有序集合可以(通过更改这个元素的分数)有序集合比列表更耗内存。

命令:

总结:
有序集合可以存储很多需要排序的内容,网络中有大量的场景是需要将数据进行排序的,所以有序集合的应用非常广泛。例如按照文章访问量排序,按照口碑排序购买商品等等。有序集合的交并差也是很方便使用的。这样在一些购买推荐,别人在查看的内容等等推送信息上,都可以用到有序集合来实现。


这一篇主要学习了除了字符串以外的四种常见的复合数据类型,并且详细介绍了每种数据类型的含义使用场景以及相关命令。下一篇来学习一下Redis的事务。

(未完待续)


www.htsjk.Com true http://www.htsjk.com/redis/35172.html NewsArticle Redis学习笔记(二)-四种复合数据类型,redis学习笔记 Redis学习笔记(二)-四种复合数据类型 继续上次的进行,第一篇重要学习了Redis的一些基本概念和基本操作语句,对Redis有了一个大概的...
相关文章
    暂无相关文章
评论暂时关闭