且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Redis五大数据类型使用详解

更新时间:2022-09-09 23:06:05

今天学习内容Redis五大数据类型,开练~~~

一、准备工作,起服务

二、Redis五大数据类型

2.1 String类型

    赋值:SET

              SET key(索引) value(对应的值)

    获取指定内容:GET

              GET key(要获取的值对应的索引)

    获取指定键的字串:GETRANGE

              GETRANGE key(索引) start(起始下标) end(终止下标)

    获取多个键值:MGET

              MGET key1 [key2...]

    获取指定键值长度:STRLEN 

              STRLEN key

    设置多个键值:MSET

              MSET key1 value1 [key2 value2 ...]

    仅在key不存在的情况下才能设置:MSETNX 

              MSETNX key1 value1 [key2 value2 ...]

    数值内容加1:INCR 

              INCR key

    数值内容加N:INCRBY

              INCRBY key increment

    数值内容减1:DECR

              DECR  key

    数值内容减N:DECRBY

              DECRBY key increment

    字符串内容追加:APPEND 

              APPEND key value(如果key不存在,直接追加,会直接创建

2.2 Hash类型

    设置HASH数据:HMSET

              HMSET key fieId1 value1 [fieId2 value2...]

    获取指定哈希表中所有的字段和值:HGETALL

              HGETALL key

    获取存储在哈希表中指定字段的值:HGET

              HGET key field

    删除一个或多个哈希表字段:HDEL

              HDEL key field1 [field2...]

    获取哈希表中字段的数量:HLEN

              HLEN key

    获取哈希表中的所有字段:HKEYS

              HKEYS key

    获取哈希表中所有的值:HVALS

              HVALS key

2.3 List类型(可以把它看作是一个LinkedList结构,按照插入的顺序进行排序

    将一个或多个元素插入列表表头:LPUSH

              LPUSH key value1 [value2...]

    将一个或多个元素插入列表尾部:RPUSH

              RPUSH key value1 [value2...]

    获取列表长度:LLEN

              LLEN key

    通过索引获取列表中的元素:LINDEX

              LINDEX key index

    移除并获取列表第一个元素:LPOP

              LPOP key

    移除并获取列表最后一个元素:RPOP

              RPOP key

2.4 Set类型(无序集合,且集合中的元素是唯一

    向集合中添加一个或多个成员:SADD

              SADD key member1 [member2...]

    获取集合中成员的个数:SCARD

              SCARD key

    返回第一个集合与其他集合之间的差异:SDIFF

              SDIFF key1 [key2..]

    返回所给定所有集合的交集:SINTER

              SINTER key1 [key2...]

    返回集合中的所有元素:SMEMBERS

              SMEMBERS key

2.5 ZSet类型(有序集合,且集合中的元素是唯一

    向有序集合中添加一个或多个成员:ZADD

              ZADD key score1(插入成员的分数) member1 [score2 member2...]

    获取有序集合的成员数:ZCARD

              ZCARD key

    计算有序集合中指定区间分数的成员数:ZCOUNT

              ZCOUNT key min max

    根据分数返回有序集合指定区间内的成员:ZRANGEBYSCORE

              ZRANGEBYSCORE key min max [WITHSCORES]

    移除有序集合中的一个或多个元素:ZREM

              ZREM key member1 [member2...]

    Redis五大数据类型使用详解Redis五大数据类型使用详解Redis五大数据类型使用详解Redis五大数据类型使用详解

redis常用数据类型有以下五种:

(1)String 

      这个其实没啥好说的,最常规的set/get操作,value可以是String也可以是数字。一般做一些复杂的计数功能的缓存。我上几期的内容教学,都是使用的String字符串。

(2)hash 

       这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。博主在做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。

(3)list 

       使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。

(4)set 

      因为set堆放的是一堆不重复值的集合。所以可以做全局去重的功能。为什么不用JVM自带的Set进行去重?因为我们的系统一般都是集群部署,使用JVM自带的Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。 另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

(5)sorted set

       sorted set多了一个权重参数score,集合中的元素能够按score进行排列。可以做排行榜应用,取TOP N操作。