Redis数据结构介绍

Redis数据结构介绍

Redis数据结构分为 STRING,LIST,SET,HASH,ZSET五种。与其他数据库或者缓存有相互对应关系。又有他自己的特点。

结构类型 值类型 读写能力
STRING 字符串,整数,浮点数,基本类型 对整个字符串或者字符串其中的一部分进行操作,对整数和浮点数进行自增或者自减
LIST 一个链表,链表上的每个节点都包含了一个字符串 从链表的两端推入或者弹出元素,根据偏移量对链表进行修剪,读取单个或者多个元素;根据值查找或者移除元素
SET 包含字符串的无序搜集器(unordered collection),并且被包含的每个字符串都是独一无二,各不相同的 添加,获取,移除单个元素;检查一个元素是否存在于集合中;计算交集,并集,差集;从集合里随机获取元素
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对;获取所有键值对
ZSET(有序集合) 字符串成员(member)与浮点数值(score)之间的有序映射,元素的排列顺序由分值的大小决定 添加、获取、删除、单个元素;根据分值范围(染个)或者成员来获取元素

字符串(STRING)

基本操作:

命令 行为
GET 获取存储在给定键值中的值
SET 设置存储在给定键中的值
DEL 删除存储在给定键中的值(所有类型适用)

列表(List)

基本操作:

命令 行为
RPUSH 给定的值推入列表的右端
LRANGE 获取列表在给定范围上的所有值
LINDEX 获取在列表给定位置上的单个元素
LPOP 从列表的左端弹出一个值,并返回被弹出的值

集合(SET)

和集合一样可以存储多个字符串,不同的是 列表中可以村粗多个相同的字符串。而集合则通过使用散列来保证自己存储的每个字符串都是各自不同的(这些散列只有键没有键值)

基本操作:

命令 行为
SADD 将给定元素添加到集合
SMEMBERS 返回集合包含的所有元素
SISMEMBER 检查给定元素是存在于集合中
SREM 如果给定的元素存在于集合中,那么移除这个元素

另外的操作
SINTER,SUNION, SDIFF 分别执行交集计算、并集计算和差集计算。

散列(HASH)

Redis的散列可以存储多个键值间的映射。其值,可以是字符串有可以是数字值。也可以对散列存储的值进行自增或自减。

散列在很多方面就是一个缩小版的Redis,不少字符串都有相应的散列版本。

基本操作:

命令 行为
HSET 在散列里面关联起给定的键值对
HGET 获取指定散列键的值
HGETALL 获取散列包含所有键值对
HDEL 如果给定键存在于散列里,那么移除这个键

Redis的散列可以看做文档数据库里的文档,在开发过程中可以很好的对应。在关系书库里可以看做关系数据库里的行。散列、文档、数据行这三者都允许用户同时访问或者修改一个火多个域。

有序集(ZSET)

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

基本操作:

命令 行为
ZADD 将一个带有给定成分值的成员添加到有序集合里
ZRANGE 根据元素在有序排列中所处处的位置,从有序集合中获取多个元素
ZRANGEBYSCORE 获取有序集合给定分值范围内的所有属性
ZREM 如果给定成员存在,移除这个成员