1.Redis基础命令
命令 | 描述 | 示例 |
---|---|---|
KEYS | 查看符合模板的所有key | KEYS pattern |
DEL | 删除一个指定的key | DEL key |
EXISTS | 判断key是否存在 | EXISTS key |
EXPIRE | 给一个key设置有效期,有效期到期时该key会被自动删除 | EXPIRE key seconds |
TTL | 查看一个KEY的剩余有效期 | TTL key |
2.Redis基本数据类型
要查询Redis具体的命令,可以在官网进行的这里查询。
注意有个筛选列表,比如看String的可以这样。
下面的是我拿这些命令做的机翻,我只是整理在这里。
含义拿不准的,可以自己到官网看下原文。
然后,我们前文提到了5种基本类型的底层实现。
数据类型 | 使用的数据结构 | 说明 |
---|---|---|
String | SDS | 简单动态字符串,预分配空间,O(1) 复杂度的长度查询 |
List | LinkedList、ZipList | 传统链表结构,适合频繁插入和删除;紧凑列表,适合少量小数据 |
Hash | HashTable、ZipList | 高效的键值对存储和查找,使用链地址法解决冲突 |
Set | IntSet、HashTable | 紧凑的数据结构,只存储整数,节省内存,适合快速查找 |
Sorted Set | SkipList、ZipList | 分层索引结构,平均 O(log N) 复杂度,适合快速插入、删除和查找 |
2.1 String
SDS
1.命令
命令 | 描述 |
---|---|
APPEND | 将值追加到一个键后面。 |
BITCOUNT | 统计字符串中被设置为 1 的位的数量。 |
BITFIELD | 在字符串上执行任意位域整数操作。 |
BITFIELD_RO | 在字符串上执行任意只读位域整数操作。 |
BITOP | 在字符串之间执行按位操作。 |
BITPOS | 找到字符串中第一个设置为 1 或 0 的位。 |
DECR | 将键存储的数字减一。 |
DECRBY | 将键存储的数字减少指定的值。 |
GET | 获取键的值。 |
GETBIT | 返回指定偏移量的位值。 |
GETDEL | 获取键的值并删除键。 |
GETEX | 获取键的值并可选地设置其过期时间。 |
GETRANGE | 获取存储在键中的字符串的子字符串。 |
GETSET | 设置键的字符串值并返回其旧值。 |
INCR | 将键存储的数字加一。 |
INCRBY | 将键存储的数字增加指定的值。 |
INCRBYFLOAT | 将键存储的数字增加指定的浮点数。 |
MGET | 获取所有给定键的值。 |
MSET | 将多个键设置为多个值。 |
MSETNX | 将多个键设置为多个值,仅当所有键都不存在时。 |
PSETEX | 设置键的值和到期时间(以毫秒为单位)。 |
SET | 设置键的字符串值。 |
SETBIT | 设置或清除指定偏移量的位。 |
SETEX | 设置键的值和到期时间。 |
SETNX | 仅当键不存在时设置键的值。 |
SETRANGE | 覆盖键中存储的字符串的一部分。 |
STRLEN | 获取存储在键中的值的长度。 |
2.场景
应用场景:缓存对象、计数器、会话管理。
示例:存储用户会话信息、网页访问计数。
3.常见问题
string 和 map存储对象有什么区别
在 Redis 中,使用 String 存储对象时,将整个对象序列化为一个字符串,适合存储简单对象,读取和写入速度快,但更新某个字段需要重新序列化整个对象。
而使用 Hash 存储对象时,将对象的每个字段作为键值对存储,方便部分字段的操作和更新,适合对象字段较多的情况,但复杂度和性能开销比 String 高。
选择 String 或 Hash 取决于对象的复杂度和操作需求。
2.2 List
LinkedList、ZipList
1.命令
命令 | 描述 |
---|---|
BLPOP | 移除并返回列表的第一个元素,若列表为空则阻塞直到有元素可弹出。 |
BRPOP | 移除并返回列表的最后一个元素,若列表为空则阻塞直到有元素可弹出。 |
BRPOPLPUSH | 从一个列表中弹出一个元素并将其推入到另一个列表中,若列表为空则阻塞。 |
LINDEX | 获取列表中指定索引的元素。 |
LINSERT | 在列表的指定位置插入元素。 |
LLEN | 获取列表的长度。 |
LMOVE | 从一个列表中移除元素并将其添加到另一个列表中。 |
LMPOP | 从多个列表中弹出第一个元素。 |
LPOP | 移除并返回列表的第一个元素。 |
LPOS | 返回列表中第一次出现指定元素的位置。 |
LPUSH | 将一个或多个值插入到列表头部。 |
LPUSHX | 将一个值插入到已存在的列表头部。 |
LRANGE | 获取列表中指定范围的元素。 |
LREM | 从列表中移除指定数量的元素。 |
LSET | 设置列表中指定位置的元素值。 |
LTRIM | 修剪列表,使其只保留指定范围内的元素。 |
RPOP | 移除并返回列表的最后一个元素。 |
RPOPLPUSH | 移除列表的最后一个元素并将其添加到另一个列表的头部。 |
RPUSH | 将一个或多个值插入到列表尾部。 |
RPUSHX | 将一个值插入到已存在的列表尾部。 |
2.场景
应用场景:消息队列、任务队列。
示例:存储评论列表、最新活动记录。
2.3 Hash
1.命令
命令 | 描述 |
---|---|
HDEL | 删除一个或多个哈希字段。 |
HEXISTS | 检查哈希字段是否存在。 |
HGET | 获取哈希字段的值。 |
HGETALL | 获取哈希中所有字段和值。 |
HINCRBY | 为哈希字段的整数值加上指定增量。 |
HINCRBYFLOAT | 为哈希字段的浮点数值加上指定增量。 |
HKEYS | 获取哈希中的所有字段。 |
HLEN | 获取哈希中的字段数量。 |
HMGET | 获取一个或多个哈希字段的值。 |
HMSET | 设置多个哈希字段的值。 |
HRANDFIELD | 随机获取哈希中的一个或多个字段。 |
HSCAN | 迭代哈希中的字段和值。 |
HSET | 设置哈希字段的值。 |
HSETNX | 仅当字段不存在时,设置哈希字段的值。 |
HSTRLEN | 获取哈希字段值的字符串长度。 |
HVALS | 获取哈希中的所有值。 |
2.场景
应用场景:存储对象、用户信息。
示例:存储用户配置、会话数据。
2.4 Set
1.命令
命令 | 描述 |
---|---|
SADD | 向集合添加一个或多个成员。 |
SCARD | 获取集合的成员数量。 |
SDIFF | 返回一个集合与其他集合之间的差集。 |
SDIFFSTORE | 将一个集合与其他集合之间的差集存储在一个新的集合中。 |
SINTER | 返回一个集合与其他集合的交集。 |
SINTERSTORE | 将一个集合与其他集合的交集存储在一个新的集合中。 |
SISMEMBER | 判断成员元素是否是集合的成员。 |
SMEMBERS | 返回集合中的所有成员。 |
SMISMEMBER | 返回一个或多个成员是否在集合中。 |
SMOVE | 将成员从一个集合移动到另一个集合。 |
SPOP | 移除并返回集合中的一个或多个随机成员。 |
SRANDMEMBER | 返回集合中的一个或多个随机成员。 |
SREM | 移除集合中的一个或多个成员。 |
SSCAN | 迭代集合中的元素。 |
SUNION | 返回所有给定集合的并集。 |
SUNIONSTORE | 将所有给定集合的并集存储在一个新的集合中。 |
2.场景
应用场景:标签系统、好友列表。
示例:管理用户兴趣标签、推荐系统。
2.5 Sorted Set
1.命令
命令 | 描述 |
---|---|
BZPOPMAX | 移除并返回一个或多个有序集中的分数最高的成员,若有序集为空则阻塞。 |
BZPOPMIN | 移除并返回一个或多个有序集中的分数最低的成员,若有序集为空则阻塞。 |
ZADD | 向有序集添加一个或多个成员,或更新已存在成员的分数。 |
ZCARD | 获取有序集的成员数量。 |
ZCOUNT | 计算指定分数区间内成员数量。 |
ZDIFF | 返回一个有序集与其他有序集之间的差集。 |
ZDIFFSTORE | 将一个有序集与其他有序集之间的差集存储在一个新的有序集中。 |
ZINCRBY | 为有序集的成员增加指定分数。 |
ZINTER | 返回一个或多个有序集的交集。 |
ZINTERSTORE | 将一个或多个有序集的交集存储在一个新的有序集中。 |
ZLEXCOUNT | 计算指定成员区间内的成员数量。 |
ZMSCORE | 获取一个或多个成员的分数。 |
ZPOPMAX | 移除并返回有序集中分数最高的成员。 |
ZPOPMIN | 移除并返回有序集中分数最低的成员。 |
ZRANDMEMBER | 返回一个或多个随机成员及其分数。 |
ZRANGE | 返回指定区间内的成员。 |
ZRANGEBYLEX | 返回指定成员区间内的成员。 |
ZRANGEBYSCORE | 返回指定分数区间内的成员。 |
ZRANGESTORE | 将指定区间内的成员存储在一个新的有序集中。 |
ZRANK | 返回成员在有序集中的排名(按分数升序)。 |
ZREM | 移除一个或多个成员。 |
ZREMRANGEBYLEX | 移除指定成员区间内的成员。 |
ZREMRANGEBYRANK | 移除指定排名区间内的成员。 |
ZREMRANGEBYSCORE | 移除指定分数区间内的成员。 |
ZREVRANGE | 返回指定区间内的成员(按分数降序)。 |
ZREVRANGEBYLEX | 返回指定成员区间内的成员(按字典序逆序)。 |
ZREVRANGEBYSCORE | 返回指定分数区间内的成员(按分数降序)。 |
ZREVRANK | 返回成员在有序集中的排名(按分数降序)。 |
ZSCAN | 迭代有序集中的元素及其分数。 |
ZSCORE | 返回成员的分数。 |
ZUNION | 返回多个有序集的并集。 |
ZUNIONSTORE | 将多个有序集的并集存储在一个新的有序集中。 |
2.场景
应用场景:排行榜、延迟队列。
示例:游戏排行榜、定时任务。
标签:基本,返回,存储,数据类型,成员,Redis,指定,列表,移除 From: https://www.cnblogs.com/yang37/p/18233444