Redis五大基本数据类型

Redis中五大基本数据类型为String,List,Set,Hash和Zset(有序集合)。其中String类型是最为基础的,list可以用来做队列/栈,set保证集合内元素不重复,hash是的value部分也是若干个k-v的形式(一般用于存储对象),Zset与set的不同是维护了一个score,可以根据score进行排序。

下面是一些常用的API:(Redis的命令无大小写之分,为了区分命令关键字与key value,下面的命令都用大写符号表示):

String

最常用的一种数据类型,String类型的值可以是字符串、数字或者二进制,但值最大不能超过512MB。

命令描述
SET key value添加一个字符串key,其值为value
GET key得到指定key的字符串的值
APPEND key value向指定的key的value后追加字符串
DECR/INCR key将指定key的value数值进行-1/+1(仅对于数字)
DECRBY/INCRBY key n将指定key的value数值进行-n/+n(仅对于数字)
STRLEN key获取key对应的字符串长度
GETRANGE key start end按起止位置获取字符串(闭区间)
SETRANGE key offset value用指定的value替换掉key中offset开始的值
GETSET key value将指定的key的值设置成value,同时返回原来的值
SETNX key value仅当key不存在的时候进行set
SETEX key second value设置键值对并设置过期时间
MSET key1 value1 [key2 value2…]批量设置键值对
MSETNX key1 value1 [key2 value2…]批量设置键值对,仅当所有key都不存在的时候执行
MGET key1 [key2…]批量获得多个key保存的值

可见String类型可以做计数器,统计一些多单位的数量。

List

有序可重复的集合,底层是依赖双向链表实现的。

命令描述
LPUSH/RPUSH key value1[value2…]从左边/右边向列表中PUSH值(一个或多个)
LRANGE key start end获取list起止元素(end==-1表示到最后)
LINSERT key BEFORE|AFTER pivot value在指定的元素pivot前/后 插入value
LLEN key查询列表的长度
LINDEX key index通过索引获取列表元素
LSET key index value通过索引为元素设置值
LPOP/RPOP key从最左边/最右边移除值 并返回
LPOPPUSH source destination从列表尾部(右)弹出元素,并添加到另一个列表头部
LTRIM key start end通过下标截取指定范围内的列表
LREM key count valueList是允许重复的 count>0:从头部开始搜索 删除指定的value 至多count个; count<0: 从尾部进行搜索… count=0: 删除列表中所有的指定value。

可见List类型由于属于双端队列的原因,可以用作消息队列。

Set

无序去重的集合。Set 提供了交集、并集等方法,对于实现共同好友、共同关注等功能特别方便。

命令描述
SADD key member1[member2…]向集合中无序增加一个/多个元素
SCARD key获得集合中的成员数
SMEMBERS key返回集合中所有的成员
SISMEMBER key member查询menber元素是否是集合的成员,结果是无序的
SRANDMEMBER key [count]随机返回count个成员,缺省值为1
SPOP key [count]随机移除并返回集合中count个成员,count缺省值为1
SMOVE source destination member将source集合中的member移动到destination集合中
SREM key member1[member2…]移除集合中一个/多个成员
SDIFF key1 [key2…]返回所有集合的差集 key1-key2-…
SINTER key1 [key2…]返回所有集合的交集
SUNION key1 [key2…]返回所有集合的并集

Set的用处也有很多,比如可以把用户的关注/粉丝存储在不同set中,不同用户取交集就能够得到共同好友。。。

Hash

Hash 是一个键值对集合。

命令描述
HSET key field value将哈希表key 中的字段field 设置为value
HMSET key field1 value1 [field2 value2…]同时设置多个field-value键值对到哈希表key中
HSETNX key field value只有在字段field不存在时,设置哈希表字段的值
HEXISTS key field查看哈希表key中是否存在指定的field
HGET key field获取存储在哈希表中指定字段的值
HMGET key field1 [field2…]获取所有给定字段的值
HGETALL key获取在哈希表key中所有字段的值
HKEYS key获取哈希表key中所有的字段
HLEN key获取哈希表中字段的数量
HVALS key获取哈希表key中所有值
HDEK key field1 [field2…]删除哈希表key中一个/多个field字段
HINCRBY key field n为哈希表key中指定的字段的整数值加上n,并返回增量后的结果(只适用于整数型字段)

可见Hash更适合于对象的存储。

Zset

有序Set。内部维护了一个score的参数来实现。适用于排行榜和带权重的消息队列等场景。

命令描述
ZADD key score1 member1 [score2 member2]向有序集合中添加一个或多个成员,或者更新已存在成员的分数
ZCARD key获取有序集合的成员数
ZCOUNT key min max计算在有序集合中指定区间score的成员数
ZINCRBY key n member有序集合中指定成员的分数增加n
ZSCORE key member返回有序集合中,成员的分数值
ZRANGE key start end通过索引区间返回有序集合中指定区间的成员
ZRANGEBYSCORE key min max通过分数返回有序集合指定区间的成员,-inf和+inf表示最大值和最小值
ZREM key member1 [member2…]移除有序集合中一个/多个成员
ZREMRANGEBYSCORE key min max移除有序集合中给定的分数区间的所有成员
ZREVRANGEBYSCORE key max min返回有序集合指定分数区间内的成员,按照倒序排列

可见Zset适用于各种需要排序的场景,如热搜排行榜一类的。

最后放一个很棒的Redis五大基本数据类型的博客:链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值