Redis学习-3:Redis中的五种数据结构

来源:互联网 发布:物流管理信息系统软件 编辑:程序博客网 时间:2024/06/05 03:51

redis可以存储键与5种不同数据结构类型之间的映射,这五种数据结构分别为String(字符串),List(列表),Set(集合),HASH(散列)和ZSET(有序集合).有一部分Redis命令只能对特定的一种或两种结构使用。

blob.png

Redis中的字符串

下图以键为hello、值为world的字符串为例,分别标记了方框的各个部分.


blob.png

字符串拥有一些和其他键值存储相似的命令,比如说GET(获得),SET(设置)和DEL(删除值)


blob.png

具体步骤

1:先set一个key为hello值为world的值


blob.png

之后我们用RedisClient查看数据库中数据的属性


blob.png

之后我们get hello,控制台会把key为hello的"world"给输出过来


blob.png

然后我们删除key为hello的值,响应行数为1行


blob.png

之后我们再尝试获取一下,redis返回nil(没有查到)


blob.png

Redis中的列表

Redis对链表结构的支持使得它在键值存储的世界中独树一帜。一个列表结构可以有序得存储多个字符串,和表示字符串时使用的方法一样。

Redis列表的操作:

RPUSH:将给定值推入列表的右端

LPUSH:将给定值推入列表的左端

LRANGE:获取列表在给定范围上的所有值

LINDEX:获取列表在给定位置上的单个元素

LPOP:从列表左端弹出一个值,并返回被弹出的值

RPOP:从列表右端弹出一个值,并返回被弹出的值


事例:


blob.png

Redis中的集合

Redis的集合和列表都可以存储多个字符串,他们之间的不同在于,列表可以存储多个相同的字符串,而集合通过使用散列表来保证自己存储的每个字符串都是各有不同的(这些散列表只有键,但没有与键相关的值)。

因为Redis的集合使用无序方式存储元素,所以用户不能像使用列表那样,将元素推入集合的某一段或者从集合的某一端弹出元素,不过用户可以使用SADD命令将元素添加到集合,或者使用SREM命令从集合里面移除元素、另外还可以通过SISMEMBER命令快速得检查一个元素是否已经存在于集合中,或者使用SMEMBERS命令获取集合包含的所有元素.

案例:


blob.png

命令列表


blob.png

Redis中的散列

Redis的散列可以存储多个键值对之间的映射。和字符串一样,散列存储的值既可以是字符串又可以是数字只,并且用户哦他那个样可以对散列存储的数字值执行自增操作或者自减操作。


blob.png

散列的命令:


blob.png

事例:


blob.png

Redis中的有序集合

有序集合和散列一样,都是用于存储键值对:有序集合的键被称为成员,每个成员(Member)都是各不相同的;而有序集合的值则被称为分值(SCORE),分值必须是浮点数。有序集合是Redis里面唯一一个既可以根据成员访问元素,又可以根据分值访问元素,又可以根据分值以及分值的排列顺序访问元素的结构。

分值(score)必须是数字!

memeber成员必须是不同的!


blob.png

有序集合命令:


blob.png


事例

blob.png

原创粉丝点击