作者:雨舒紫_586 | 来源:互联网 | 2024-11-22 15:36
本文详细介绍了Redis中的主要数据类型,包括String、Hash、List、Set、ZSet、Geo和HyperLogLog,并提供了每种类型的基本操作命令和应用场景。
String 类型
String 类型是 Redis 最基本的数据类型,可以存储字符串、整数或浮点数。它支持多种操作,如设置、获取、追加等。
常用命令
- SET key value [EX seconds|PX milliseconds] [NX|XX]:设置键值对,EX 和 PX 分别表示过期时间(秒和毫秒),NX 和 XX 控制键是否存在时的行为。
- GET key:根据键获取值。
- MSET key value [key value ...]:批量设置键值对。
- MGET key [key ...]:批量获取多个键的值。
- STRLEN key:获取值的长度。
- APPEND key value:向现有值末尾追加数据。
Hash 类型
Hash 类型允许将多个字段-值对存储在一个键中,适用于存储对象。例如,一个用户对象可以包含用户名、密码等字段。
常用命令
- HSET key field value:设置哈希表中的字段值。
- HMSET key field value [field value ...]:同时设置多个字段值。
- HGET key field:获取指定字段的值。
- HMGET key field [field ...]:批量获取字段值。
- HKEYS key:获取所有字段名。
- HVALS key:获取所有字段值。
List 类型
List 是一个有序的字符串列表,可以用来实现队列(FIFO)和栈(LIFO)。
常用命令
- LPUSH key value [value ...]:在列表头部插入一个或多个值。
- RPUSH key value [value ...]:在列表尾部插入一个或多个值。
- LPOP key:移除并返回列表的第一个元素。
- RPOP key:移除并返回列表的最后一个元素。
- LINDEX key index:根据索引获取列表中的元素。
- LRange key start stop:获取列表中指定范围的元素。
- BLPOP key [key ...] timeout:带超时的阻塞式 LPOP 操作。
Set 类型
Set 是一个无序且不允许重复的集合,常用于去除重复数据。
常用命令
- SADD key member [member ...]:向集合中添加一个或多个成员。
- SMEMBERS key:获取集合中的所有成员。
- SCARD key:返回集合中的成员数量。
- SRANDMEMBER key [count]:随机返回一个或多个成员。
- SPOP key [count]:随机移除并返回一个或多个成员。
- SREM key member [member ...]:移除集合中的一个或多个成员。
- SISMEMBER key member:检查成员是否存在于集合中。
- SDIFF key [key ...]:获取多个集合的差集。
- SINTER key [key ...]:获取多个集合的交集。
- SUNION key [key ...]:获取多个集合的并集。
ZSet 类型
ZSet 是一个有序集合,每个成员都有一个分数,成员按分数排序。
常用命令
- ZADD key score member [score member ...]:向有序集合中添加一个或多个成员。
- ZRANGE key start stop [WITHSCORES]:按分数升序返回指定范围内的成员。
- ZREVRANGE key start stop [WITHSCORES]:按分数降序返回指定范围内的成员。
- ZRANGEBYSCORE key min max [WITHSCORES]:按分数范围返回成员。
- ZREM key member [member ...]:移除一个或多个成员。
- ZCARD key:返回集合中的成员数量。
- ZINCRBY key increment member:增加成员的分数。
- ZRANK key member:返回成员的排名(升序)。
- ZSCORE key member:返回成员的分数。
Geo 类型
Geo 类型用于存储地理位置信息,支持基于地理位置的查询。
常用命令
- GEOADD key longitude latitude member [longitude latitude member ...]:向地理位置集合中添加一个或多个成员。
- GEOPOS key member [member ...]:获取一个或多个成员的位置。
- GEODIST key member1 member2 unit:计算两个成员之间的距离。
- GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]:查询指定半径内的成员。
- GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]:基于已知成员查询指定半径内的其他成员。
HyperLogLog 类型
HyperLogLog 是一种用于估算基数的数据结构,适合处理大数据量的唯一值计数问题,如网站的独立访客数。
常用命令
- PFADD key element [element ...]:向 HyperLogLog 中添加一个或多个元素。
- PFCOUNT key [key ...]:获取 HyperLogLog 的近似基数。
- PFMERGE destkey sourcekey [sourcekey ...]:将多个 HyperLogLog 合并到一个新的 HyperLogLog 中。