Redis是一种高性能的键值型数据库,它支持五种数据类型:字符串(string)、列表(list)、集合(set)、有序集合(sorted set)和哈希(hash)。每种数据类型都有自己的特点和用途,也有相应的命令来存取数据。本文将介绍每种数据类型的基本概念和常用命令。
字符串(string)是Redis最基本的数据类型,它可以存储任何形式的数据,如文本、数字、二进制等。字符串的最大长度为512MB。字符串可以用于缓存、计数器、分布式锁等场景。字符串的常用命令有:
1.SET key value:设置一个键值对
2.GET key:获取一个键对应的值
3.DEL key:删除一个键值对
4.INCR key:将一个键对应的数字值增加1
5.DECR key:将一个键对应的数字值减少1
6.APPEND key value:将一个值追加到一个键对应的值后面
7.GETRANGE key start end:获取一个键对应的值的子串
列表(list)是一种有序的字符串集合,它可以存储多个字符串元素,每个元素都有一个索引,从0开始。列表可以用于消息队列、最新动态、排行榜等场景。列表的常用命令有:
1.LPUSH key value [value ...]:将一个或多个值插入到列表头部
2.RPUSH key value [value ...]:将一个或多个值插入到列表尾部
3.LPOP key:弹出并返回列表头部的元素
4.RPOP key:弹出并返回列表尾部的元素
5.LLEN key:返回列表的长度
6.LRANGE key start stop:返回列表中指定范围内的元素
7.LINDEX key index:返回列表中指定索引位置的元素
集合(set)是一种无序的字符串集合,它可以存储多个不重复的字符串元素。集合可以用于标签、好友关系、共同喜好等场景。集合的常用命令有:
1.SADD key member [member ...]:将一个或多个元素添加到集合中
2.SREM key member [member ...]:将一个或多个元素从集合中移除
3.SCARD key:返回集合中元素的数量
4.SMEMBERS key:返回集合中所有元素
5.SISMEMBER key member:判断一个元素是否在集合中
6.SINTER key [key ...]:返回多个集合的交集
7.SUNION key [key ...]:返回多个集合的并集
8.SDIFF key [key ...]:返回多个集合的差集
有序集合(sorted set)是一种有序的字符串集合,它可以存储多个不重复的字符串元素,每个元素都有一个分数(score),用于排序。有序集合可以用于排行榜、延时任务、优先队列等场景。有序集合的常用命令有:
1.ZADD key score member [score member ...]:将一个或多个带分数的元素添加到有序集合中
2.ZREM key member [member ...]:将一个或多个元素从有序集合中移除
3.ZCARD key:返回有序集合中元素的数量
4.ZRANGE key start stop [WITHSCORES]:返回有序集合中指定范围内按分数升序排列的元素,可选是否返回分数
5.ZREVRANGE key start stop [WITHSCORES]:返回有序集合中指定范围内按分数降序排列的元素,可选是否返回分数
6.ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:返回有序集合中指定分数区间内的元素,可选是否返回分数和限制数量
7.ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回有序集合中指定分数区间内的元素,可选是否返回分数和限制数量
8.ZSCORE key member:返回有序集合中指定元素的分数
9.ZINCRBY key increment member:将有序集合中指定元素的分数增加指定值
哈希(hash)是一种键值对的集合,它可以存储多个字段(field)和值(value),每个字段都是一个字符串。哈希可以用于存储对象、配置、缓存等场景。哈希的常用命令有:
1.HSET key field value [field value ...]:将一个或多个字段值对设置到哈希中
2.HGET key field:获取哈希中指定字段的值
3.HDEL key field [field ...]:删除哈希中一个或多个字段
4.HLEN key:返回哈希中字段的数量
5.HGETALL key:返回哈希中所有字段和值
6.HEXISTS key field:判断哈希中是否存在指定字段
7.HINCRBY key field increment:将哈希中指定字段的值增加指定值
8.HMSET key field value [field value ...]:将多个字段值对设置到哈希中
9.HMGET key field [field ...]:获取哈希中多个字段的值