一、了解redis中的基本数据类型
-
String(字符串):
- 是 Redis 最基本的数据类型。
- 你可以将 String 类型理解为简单的 key-value 键值对。
- 它不仅可以存储字符串,还可以存储数字。
- 常用的命令包括
SET
、GET
、INCR
、DECR
等。
-
Hash(哈希):
- Redis 的 Hash 是一个键值对的集合。
- 每个 Hash 可以存储多个键值对。
- 常用于存储对象。
- 常用的命令包括
HSET
、HGET
、HGETALL
等。
-
List(列表):
- Redis 的 List 是简单的字符串列表,按照插入顺序排序。
- 你可以在一个 List 中添加或者获取多个元素。
- List 是通过双向链表实现的,所以向 List 的两端添加或删除元素是非常快的。
- 常用的命令包括
LPUSH
、RPUSH
、LPOP
、RPOP
、LRANGE
等。
-
Set(集合):
- Redis 的 Set 是 string 类型的无序集合。
- 集合成员是唯一的,不存在重复的元素。
- Redis 的 Set 是通过哈希表实现的,所以添加、删除和查找操作都非常快。
- 常用的命令包括
SADD
、SMEMBERS
、SISMEMBER
、SPOP
等。
-
Sorted Set(有序集合):
- Redis 的 Sorted Set 和 Set 类似,也是 string 类型元素的集合,并且元素不重复。
- 但不同的是,Sorted Set 中的每个元素都会关联一个 double 类型的分数。Redis 正是通过分数来为集合中的元素从小到大进行从小到大的排序。
- Sorted Set 的成员是唯一的,但分数(score)可以重复。
- 常用的命令包括
ZADD
、ZRANGE
、ZREVRANGE
、ZREM
等
二、redis中的常用命令
2.1 Redis中String类型的一些常用命令
SET key value
:设置指定key的值。GET key
:获取指定key的值。GETRANGE key start end
:获取key中字符串值的子字符串。GETSET key value
:设置key的值,并返回key的旧值。GETBIT key offset
:对key所储存的字符串值,获取指定偏移量上的位(bit)。MGET key1 [key2..]
:获取所有(一个或多个)给定key的值。SETBIT key offset value
:对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。SETEX key seconds value
:将值value关联到key,并将key的过期时间设为seconds(秒)。SETNX key value
:只有在key不存在时设置key的值。SETRANGE key offset value
:用value覆写key的值,从偏移量offset开始。STRLEN key
:返回key所储存的字符串值的长度。MSET key value [key value ...]
:同时设置一个或多个key-value对。MSETNX key value [key value ...]
:同时设置一个或多个key-value对,当且仅当所有给定key都不存在。PSETEX key milliseconds value
:这个命令和SETEX命令相似,但它以毫秒为单位设置key的生存时间,而不是像SETEX命令那样,以秒为单位。INCR key
:将key中储存的数字值增1。如果key不存在,那么key的值会先被初始化为0,然后再执行INCR操作。INCRBY key increment
:将key所储存的值加上给定的增量值(increment)。INCRBYFLOAT key increment
:将key所储存的值加上给定的浮点增量值(increment)。DECR key
:将key中储存的数字值减1。DECRBY key decrement
:key所储存的值减去给定的减量值(decrement)。APPEND key value
:如果key存在并且是一个字符串,APPEND命令将指定的value追加到key原来的值末尾。
2.2 Redis中Hash类型的一些常用命令:
HSET key field value
:将哈希表key中的字段field的值设为value。HGET key field
:获取哈希表key中字段field的值。HGETALL key
:获取在哈希表中指定key的所有字段和值。HMGET key field1 [field2]
:获取所有给定字段的值。HSETNX key field value
:只有在字段field不存在时,设置哈希表字段的值。HDEL key field1 [field2]
:删除一个或多个哈希表字段。HEXISTS key field
:查看哈希表key中,指定的字段是否存在。HINCRBY key field increment
:为哈希表key中的指定字段的整数值加上增量increment。HINCRBYFLOAT key field increment
:为哈希表key中的指定字段的浮点数值加上增量increment。HKEYS key
:获取所有哈希表中的字段。HVALS key
:获取哈希表中所有值。HLEN key
:获取哈希表中字段的数量。HMSET key field1 value1 [field2 value2 ]
:同时将多个field-value(字段-值)对设置到哈希表key中。HSCAN key cursor [MATCH pattern] [COUNT count]
:迭代哈希表中的键值对。HSTRLEN key field
:获取哈希表key中字段field的值的字符串长度。
2.3 Redis中List类型的一些常用命令:
LPUSH key value1 [value2]
:将一个或多个值插入到列表的头部(左侧)。LPOP key
:移除并返回列表的第一个元素。RPUSH key value1 [value2]
:将一个或多个值插入到列表的尾部(右侧)。RPOP key
:移除并返回列表的最后一个元素。LRANGE key start stop
:获取列表指定范围内的元素。LINDEX key index
:通过索引获取列表中的元素。LLEN key
:获取列表长度。LREM key count value
:移除列表中指定数量的等于value的元素。LSET key index value
:通过索引设置列表元素的值。LINSERT key BEFORE|AFTER pivot value
:在列表的元素前或后插入元素。RPOPLPUSH source destination
:移除列表的最后一个元素,并将该元素添加到另一个列表的头部。BRPOPLPUSH source destination timeout
:阻塞版本的RPOPLPUSH,如果源列表没有元素,会阻塞等待直到有元素可用或超时。BLPOP key1 [key2] timeout
:阻塞版本的LPOP,如果列表没有元素,会阻塞等待直到有元素可用或超时。BRPOP key1 [key2] timeout
:阻塞版本的RPOP,如果列表没有元素,会阻塞等待直到有元素可用或超时。LTRIM key start stop
:修剪列表,只保留指定范围内的元素。LLEN key
:返回列表的长度。
2.4Redis中Set类型的一些常用命令:
SADD key member1 [member2]
:向集合添加一个或多个成员。SMEMBERS key
:返回集合中的所有成员。SISMEMBER key member
:判断member元素是否是集合的成员。SCARD key
:获取集合的成员数。SREM key member1 [member2]
:移除集合中一个或多个成员。SPOP key
:移除并返回集合中的一个随机成员。SRANDMEMBER key [count]
:返回集合中的一个或多个随机成员。SMOVE source destination member
:将成员从一个集合移动到另一个集合。SINTER key1 [key2]
:返回所有给定集合的交集。SINTERSTORE destination key1 [key2]
:返回所有给定集合的交集,并将结果存储在destination集合中。SUNION key1 [key2]
:返回所有给定集合的并集。SUNIONSTORE destination key1 [key2]
:返回所有给定集合的并集,并将结果存储在destination集合中。SDIFF key1 [key2]
:返回所有给定集合的差集。SDIFFSTORE destination key1 [key2]
:返回所有给定集合的差集,并将结果存储在destination集合中。SSCAN key cursor [MATCH pattern] [COUNT count]
:迭代集合中的元素
2.5 Redis中Sorted Set类型的一些常用命令:
ZADD key [NX|XX] [CH] [INCR] score1 member1 [score2 member2]
:向有序集合添加一个或多个成员,或者更新已存在成员的分数。ZCARD key
:获取有序集合的成员数。ZCOUNT key min max
:计算在有序集合中指定分数区间的成员数。ZINCRBY key increment member
:有序集合中对指定成员的分数加上增量increment。ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
:计算给定的一个或多个有序集的交集,并将结果存储在新的有序集合destination中。ZLEXCOUNT key min max
:在有序集合中计算指定字典区间内成员数量。ZRANGE key start stop [WITHSCORES]
:通过索引区间返回有序集合指定区间内的成员。ZRANGEBYLEX key min max [LIMIT offset count]
:通过字典区间返回有序集合的成员。ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
:通过分数返回有序集合指定区间内的成员。ZREVRANGE key start stop [WITHSCORES]
:返回有序集中指定区间内的成员,通过索引,分数从高到低。ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT]
:返回有序集中指定分数区间内的成员,分数从高到低排序。ZRANK key member
:返回有序集合中指定成员的索引。ZREVRANK key member
:返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序。ZREM key member [member ...]
:移除有序集合中的一个或多个成员。ZREMRANGEBYLEX key min max
:移除有序集合中给定的字典区间的所有成员。ZREMRANGEBYRANK key start stop
:移除有序集合中给定的排名区间的所有成员。ZREMRANGEBYSCORE key min max
:移除有序集合中给定的分数区间的所有成员。ZSCORE key member
:返回有序集中,成员的分数值。ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
:计算给定的一个或多个有序集的并集,并将结果存储在新的有序集合destination中。ZSCAN key cursor [MATCH pattern] [COUNT count]
:迭代有序集合中的元素(包括分数和成员)。