内容简介:一些命令需要结合 redis 的数据类型来说。Redis 4.0 之前有5种数据类型,分别是:字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(zset)。
Redis 的数据类型
一些命令需要结合 redis 的数据类型来说。
Redis 4.0 之前有5种数据类型,分别是:字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(zset)。
在 4.0 版本,Redis 新加了一种 stream 的类型。暂且先不说,以后会新开文章具体讲解。
基本知识:
- 数据类型不支持嵌套,即所有的类型的元素只能是字符串,不能是散列和集合或者有序集合。
- 除了字符串之外,每种数据类型的命令都有一个开头。
- 散列(h)
- 列表(l)
- 集合(s)
- 有序集合(z)
- stream(x)
字符串
Redis 的字符串使用了 Redis 自己实现的是一个字符串结构叫简单动态字符串:SDS,simple dynamic string
Redis 中的字符串的最大存储是 512M。
并且可以当作数字来使用的。比如 incr、incrby、decr、decrby 都是基于数字的值进行操作的。我们可以通过 incr 来实现一个计数器。或者是自增数字发生器。
散列
散列的底层是用字典实现的。并且其就是一个字典结构。可以构成: field:value 的格式。
如下图所示:
列表
列表底层是使用双向链表实现的。通过列表可以实现队列功能。
通过以下命令可以通过列表实现数组的功能:
lindex key index lset key index value
rpoplpush 可以实现原子性地将一个数据从表尾放到另一个或者自己的表头。
集合
Redis 中的集合与数学上的集合具有相同的性质,无序且重复。并且 Redis 提供了 diff、inter、union 三种集合操作的命令。
有序集合
有序集合使用跳跃表实现。集合是无序的,并且值不能重复。集合这种数据类型对于很多场景是不适用的。比如说,排行榜。于是 Redis 提供了一种有序集合类型。有序集合是一个每个元素都有一个分值代表在集合中的排行的一种数据结构。如果分值相同,那么按照元素的字典序进行排序。
什么是跳跃表,可以参见这篇文章:[ http://blog.jobbole.com/111731/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Machine Learning
Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00
Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
JS 压缩/解压工具
在线压缩/解压 JS 代码