不扯虚的,Redis是一种非关系型数据库(NoSQL)。简单的说Redis是一种key-value型数据库,其中value有以下5种基本类型,String、Hash、List、Set、SortedSet。下面会一一来简单介绍。


       什么叫非关系型数据库(面试被问过,现在划重点)?关系型数据库是有行有列的,其中每一列都是相同的属性字段,所以叫关系型数据库。非关系型数据库就是一行行记录,每一条记录没有关系(或者叫没有相同属性)。

01

String类型

  • 设置

    比如设置key为key1,Value值为Value1,设置成功返回OK。

Redis基础篇(一)基本数据类型_java

   如果想要设置多个Key值,可以使用mset命令。

Redis基础篇(一)基本数据类型_java_02

  • 获取

   通过key,获取值。这里使用get命令。

Redis基础篇(一)基本数据类型_java_03

  如果想要获取多个值,可以使用mget命令。

Redis基础篇(一)基本数据类型_java_04

  • 删除

删除使用del命令,根据key删除这个值。

Redis基础篇(一)基本数据类型_java_05

删除后,再次去查询这个Key,返回nil代表空。

Redis基础篇(一)基本数据类型_java_06

  • 自增

当Value为整数数据时,才能使用以下命令操作数值的增减。

 Redis基础篇(一)基本数据类型_java_07

此外还可以使用incrby命令,每次增加指定的数值。

Redis基础篇(一)基本数据类型_java_08

02


Hash类型

      Hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。

  •    设置

  一次设置一个值,语法:HSET key field value

Redis基础篇(一)基本数据类型_java_09

一次设置多个值,语法:HMSET key field value[field value ...]

Redis基础篇(一)基本数据类型_java_10

  •   取值

  一次性取一个值,语法:HGET key field 

Redis基础篇(一)基本数据类型_java_11

  一次性获取多个值,语法:HMGET key field [field ...]

Redis基础篇(一)基本数据类型_java_12

  获取所有字段值,语法:HGETALL key

Redis基础篇(一)基本数据类型_java_13

  • 删除

    删除每次删除一个或几个字段,语法:HDEL key field [field ...]

  

03


List类型

        Redis的列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。

       列表类型内部是使用双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度为0(1),获取越接近两端的元素速度就越快。

  • 添加

    向list左侧添加元素,语法:LPUSH key value [value ...]

    向list右侧添加元素,语法:RPUSH key value [value ...]

  • 查看

    LRANGE命令是列表类型最常用的命令之一,获取列表中的某一片段。语法:LRANGE key start stop

Redis基础篇(一)基本数据类型_java_14

  • 弹出元素

   从左侧弹出元素,语法:LPOP  key

   从右侧弹出元素,语法:RPOP  key

   需要注意的是,弹出元素,该元素就不在队列里了。

Redis基础篇(一)基本数据类型_java_15


04


Set类型

        set类型即集合类型,其中的数据是不重复且没有顺序。Redis还提供了多个集合之间的交集、并集、差集的运算。

  • 增加/删除元素

        增加元素,可以一次增加一个或多个,语法为:sadd key[filed1,field2..]

       删除元素,可以一次删除一个或多个,语法为:srem key [field1,field2]

Redis基础篇(一)基本数据类型_java_16

  • 查看set中的元素

       查看集合中的所有元素,使用smembers命令,语法为smember key

Redis基础篇(一)基本数据类型_java_17

  •   集合运算

     运算集合的差价,命令 :SDIFF key [key ...]

     运算集合的交集,语法:SINTER key [key ...]

     运算集合的并集,语法:SUNIONkey [key ...]

Redis基础篇(一)基本数据类型_java_18


05


SortedSet类型

    SortedSet是一个排序的集合,叫做zset。

  •   新增

        向有序集合中加入一个元素和该元素的分数,如果该元素已经存在则会用新的分数替换原有的分数。返回值是新加入到集合中的元素个数,不包含之前已经存在的元素。

      语法:ZADD key score member [score member ...]

Redis基础篇(一)基本数据类型_java_19

  •   获取元素

         如果想获取部分元素,可以使用ZRANGE命令。

   语法:ZRANGE key start stop[WITHSCORES]   

Redis基础篇(一)基本数据类型_java_20

  • 删除

   移除有序集key中的一个或多个成员,不存在的成员将被忽略。

   语法:ZREM key member [member ...]

Redis基础篇(一)基本数据类型_java_21


06


小结

     本文简单介绍了Redis中的5种数据结构,并介绍了一些常用的命令。有些命令本文没有涉及,可以去查询一下用法。至于这几个数据结构的使用场景,后续的文章会介绍到。