基础数据结构
-
字符串(Strings):
- Redis的字符串是二进制安全的,这意味着它们可以包含任何数据,如文本或序列化的二进制数据。
- 一个字符串键可以存储最大512MB的值。
常用命令:SET(设置值)、GET(获取值)、INCR(增加值)、DECR(减少值)、APPEND(追加值)、STRLEN(获取长度)。
-
哈希(Hashes):
- 哈希是键值对的集合,类似于Python中的字典。
- 哈希特别适合存储对象的数据,例如一个用户的属性。
常用命令:HSET(设置哈希字段的值)、HGET(获取哈希字段的值)、HGETALL(获取所有哈希字段和值)、HDEL(删除哈希字段)。
-
列表(Lists):
- 列表是简单的字符串列表,按插入顺序排序。
- 你可以从列表的两端推入或弹出元素。
常用命令:LPUSH(从左侧插入)、RPUSH(从右侧插入)、LPOP(从左侧弹出)、RPOP(从右侧弹出)、LRANGE(获取列表片段)。
-
集合(Sets):
- 集合是无序的字符串集合,不能包含重复的元素。
适合用于快速查找、删除和添加元素。
常用命令:SADD(添加元素)、SREM(移除元素)、SMEMBERS(获取所有元素)、SISMEMBER(检查元素是否存在)。
有序集合(Sorted Sets,或称为ZSets): - 有序集合类似于集合,但每个元素都会关联一个分数(score),根据分数进行排序。
适合排行榜、延迟队列等场景。
常用命令:ZADD(添加元素并设置分数)、ZRANGE(根据分数范围获取元素)、ZREM(移除元素)、ZSCORE(获取元素的分数)。
- 集合是无序的字符串集合,不能包含重复的元素。
-
位图(Bitmaps):
- 位图是对字符串的位操作扩展,适合进行低级别的操作,比如统计。
常用命令:SETBIT(设置某个位的值)、GETBIT(获取某个位的值)、BITCOUNT(统计位值为1的数量)。
- 位图是对字符串的位操作扩展,适合进行低级别的操作,比如统计。
-
HyperLogLog:
- 一种用于基数估计的数据结构,可以用于近似地统计独立元素的数量。
常用命令:PFADD(添加元素)、PFCOUNT(获取估计的基数)。
- 一种用于基数估计的数据结构,可以用于近似地统计独立元素的数量。
-
地理空间索引(Geospatial Indexes):
- 用于存储地理位置信息和执行半径查询。
常用命令:GEOADD(添加地理位置)、GEORADIUS(根据半径查询位置)。
- 用于存储地理位置信息和执行半径查询。
Redis通用命令
- KEYS:查看符合模版的所有key,不建议在生产环境设备上使用
- DEL:删除一个指定的key
- EXISTS:判断key是否存在
- EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
- TTL:查看一个KEY的剩余有效期
Redis对应各数据类型的命令操作
String的常见命令
- SET :添加或者修改一个已经存在的String类型的键值对
- GET :根据key获取String类型的value
- MSET :批量添加多个String类型的键值对
- MGET :根据多个key批量获取多个String类型的值
- INCR :让一个整形的ket自增1
- INCRBY :让一个整形的key自增并指定步长
- INCRBYFLOAT :让一个浮点数类型的数字自增长
- SETNX :添加一个String类型的键值对,前提是这个key不存在,否则不执行
- SETEX:添加一个String类型的键值对,并执行有效期
Hashes的常见命令
- HSET: 设置哈希表中指定字段的值。
HSET key field value
- HGET: 获取哈希表中指定字段的值。
HGET key field
- HGETALL: 获取哈希表中所有字段和值。
HGETALL key
- HDEL: 删除一个或多个哈希表字段。
HDEL key field1 [field2]
- HEXISTS: 检查哈希表中指定字段是否存在。
HEXISTS key field
- HLEN: 获取哈希表中字段的数量。
HLEN key
- HKEYS: 获取哈希表中的所有字段名。
HKEYS key
- HVALS: 获取哈希表中的所有值。
HVALS key
- HMSET: 设置多个字段的值。
HMSET key field1 value1 field2 value2 ...
- HMGET: 获取多个字段的值。
HMGET key field1 [field2 ...]
Lists的常见命令
- LPUSH: 将一个值或多个值插入到列表的左侧。
LPUSH key value1 [value2]
- RPUSH: 将一个值或多个值插入到列表的右侧。
RPUSH key value1 [value2]
- LPOP: 移除并返回列表的第一个元素。
LPOP key
- RPOP: 移除并返回列表的最后一个元素。
RPOP key
- LRANGE: 获取列表在指定范围内的元素。
LRANGE key start stop
- LLEN: 获取列表的长度。
LLEN key
- LREM: 移除列表中与指定值相等的元素。
LREM key count value
- LINDEX: 获取列表中指定索引的元素。
LINDEX key index
- LSET: 设置列表中指定索引的元素的值。
LSET key index value
- LTRIM: 修剪列表,使其只包含指定范围内的元素。
LTRIM key start stop
Sets的常见命令
- SADD: 向集合添加一个或多个成员。
SADD key member1 [member2]
- SREM: 移除集合中的一个或多个成员。
SREM key member1 [member2]
- SMEMBERS: 返回集合中的所有成员。
SMEMBERS key
- SISMEMBER: 判断某个值是否是集合的成员。
SISMEMBER key member
- SCARD: 获取集合的成员数。
SCARD key
- SPOP: 移除并返回集合中的一个随机元素。
SPOP key
- SRANDMEMBER: 返回集合中的一个或多个随机成员。
SRANDMEMBER key [count]
- SDIFF: 返回给定集合之间的差集。
SDIFF key1 [key2 ...]
- SINTER: 返回给定集合之间的交集。
SINTER key1 [key2 ...]
- SUNION: 返回给定集合的并集。
SUNION key1 [key2 ...]
Sorted Sets的常见命令
- ZADD: 向有序集合添加一个或多个成员,或更新已存在成员的分数。
ZADD key score1 member1 [score2 member2]
- ZRANGE: 返回有序集中指定区间内的成员。
ZRANGE key start stop [WITHSCORES]
- ZREM: 移除有序集合中的一个或多个成员。
ZREM key member1 [member2]
- ZSCORE: 返回有序集中,成员的分数值。
ZSCORE key member
- ZCARD: 获取有序集合的成员数。
ZCARD key
- ZCOUNT: 返回有序集中,指定分数区间内的成员数量。
ZCOUNT key min max
- ZRANK: 返回有序集中指定成员的排名(从小到大)。
ZRANK key member
- ZREVRANK: 返回有序集中指定成员的排名(从大到小)。
ZREVRANK key member
- ZINCRBY: 有序集合中对指定成员的分数加上增量。
ZINCRBY key increment member
- ZRANGEBYSCORE: 返回有序集中指定分数区间内的成员。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
Bitmaps的常见命令
- SETBIT: 对字符串值的指定偏移量设置或清除位。
SETBIT key offset value
- GETBIT: 返回字符串值的指定偏移量的位。
GETBIT key offset
- BITCOUNT: 计算给定字符串中被设置为1的比特位的数量。
BITCOUNT key [start end]
- BITOP: 对一个或多个保存二进制位的字符串key进行位操作。
BITOP operation destkey key1 [key2 ...]
- BITPOS: 返回第一个设置为1或0的位的位置。
BITPOS key bit [start] [end]
HyperLogLog的常见命令
- PFADD: 向HyperLogLog添加指定元素。
PFADD key element1 [element2 ...]
- PFCOUNT: 返回给定HyperLogLog的基数估计值。
PFCOUNT key [key ...]
- PFMERGE: 将多个HyperLogLog合并为一个。
PFMERGE destkey sourcekey [sourcekey ...]
Geospatial Indexes的常见命令
- GEOADD: 将指定的地理空间位置(经度、纬度、名字)添加到指定的key中。
GEOADD key longitude latitude member
- GEOPOS: 返回一个或多个地理位置元素的经度和纬度。
GEOPOS key member1 [member2 ...]
- GEODIST: 返回两个给定位置之间的距离。
GEODIST key member1 member2 [unit]
- GEORADIUS: 返回指定范围内的地理位置集合。
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
- GEORADIUSBYMEMBER: 返回成员位置指定范围内的地理位置集合。
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC]
这些命令涵盖了Redis的主要数据结构和通用操作,可以有效地使用Redis进行各种数据存储和处理任务。