Go...

当前位置: 首页>>活动日历

Redis——Redis基础命令集与真实应用场景详解(上)

本文详细介绍了Redis的常用命令,包括基础命令如ping、select、info、config get 、config set;key操作命令如exists、TYPE 、del、expire、ttl、RENAME、keys以及string命令、hash命令、list命令、set命令、zset命令以及它们的常用场景等等

本文目录

一、Redis基本命令二、key 操作命令三、scan 命令详解四、String 型操作命令String 型应用场景

四、Hash 型操作命令五、List 型操作命令List 型应用场景

六、Set 型操作命令Set 型应用场景

七、ZSet 型操作命令ZSet 型应用场景

一、Redis基本命令

连接与选择数据库

PING:用于测试与 Redis 服务器的连接是否正常,若连接正常,服务器会返回 PONG。SELECT :选择指定索引的数据库,Redis 默认有 16 个数据库,索引从 0 到 15。 服务器信息

INFO:返回 Redis 服务器的各种信息和统计数据,如内存使用情况、连接数、持久化信息等。CONFIG GET :获取 Redis 服务器的配置参数,例如 CONFIG GET maxmemory 可获取最大内存限制。CONFIG SET :设置 Redis 服务器的配置参数。

二、key 操作命令

键的存在性与类型检查

EXISTS :检查指定的键是否存在,存在返回 1,不存在返回 0。TYPE :返回键所对应值的类型,如 string、hash、list 等。 键的删除与过期设置

DEL [key ...]:删除指定的一个或多个键,返回被删除键的数量。EXPIRE :为指定的键设置过期时间,单位为秒。TTL :查看键的剩余过期时间,若键不存在或没有设置过期时间返回 -1,若键已过期返回 -2。 键的重命名与查找

RENAME :将键 key 重命名为 newkey。KEYS :查找符合指定模式的键,不过在生产环境中应谨慎使用,因为它可能会阻塞服务器。

三、scan 命令详解

作用:SCAN 命令用于迭代数据库中的键,是一个基于游标的迭代器,解决了 KEYS 命令可能导致的阻塞问题,适合在生产环境中使用。使用方法:SCAN [MATCH ] [COUNT ],cursor 是迭代的游标,初始值为 0;MATCH 用于指定匹配的模式;COUNT 用于指定每次迭代返回的键的数量,但这只是一个近似值。迭代过程:每次调用 SCAN 命令会返回一个新的游标和一批键,当返回的游标为 0 时,表示迭代结束。

四、String 型操作命令

设置与获取值

SET :设置键 key 的值为 value。GET :获取键 key 的值。SETNX :只有当键 key 不存在时才设置其值,可用于实现分布式锁。 数值操作

INCR :将键 key 所存储的值加 1,若键不存在则先将其值初始化为 0 再进行加 1 操作。DECR :将键 key 所存储的值减 1。INCRBY :将键 key 所存储的值加上指定的增量 increment。

String 型应用场景

缓存:将经常访问的数据,如数据库查询结果、页面片段等以字符串形式存储在 Redis 中,减少对后端数据库的访问,提高系统性能。计数器:利用 INCR、DECR 等命令实现网站的访问量统计、文章的点赞数统计等。分布式锁:使用 SETNX 命令结合过期时间实现简单的分布式锁,确保在分布式系统中同一时间只有一个客户端可以执行某个操作。

四、Hash 型操作命令

设置与获取字段值

HSET :为哈希表 key 中的字段 field 设置值 value。HGET :获取哈希表 key 中字段 field 的值。HMSET ...:同时为哈希表 key 中的多个字段设置值。HMGET ...:获取哈希表 key 中多个字段的值。 字段的存在性与删除

HEXISTS :检查哈希表 key 中是否存在字段 field。HDEL [field ...]:删除哈希表 key 中的一个或多个字段。

五、List 型操作命令

插入元素

LPUSH [value ...]:将一个或多个值插入到列表 key 的头部。RPUSH [value ...]:将一个或多个值插入到列表 key 的尾部。 获取元素

LRANGE :获取列表 key 中指定范围的元素,start 和 stop 为索引,支持负数索引。LINDEX :获取列表 key 中指定索引位置的元素。 删除元素

LPOP :移除并返回列表 key 的头部元素。RPOP :移除并返回列表 key 的尾部元素。

List 型应用场景

消息队列:生产者使用 RPUSH 命令将消息插入到列表尾部,消费者使用 LPOP 命令从列表头部获取消息,实现异步消息处理。栈:使用 LPUSH 和 LPOP 命令可以实现栈的功能,后进先出(LIFO)。最新消息列表:将最新的消息使用 LPUSH 插入到列表头部,通过 LRANGE 获取最新的若干条消息。

六、Set 型操作命令

添加与删除元素

SADD [member ...]:向集合 key 中添加一个或多个元素。SREM [member ...]:从集合 key 中移除一个或多个元素。 集合操作

SMEMBERS :返回集合 key 中的所有元素。SISMEMBER :检查元素 member 是否存在于集合 key 中。SUNION ...:返回多个集合的并集。SINTER ...:返回多个集合的交集。SDIFF ...:返回多个集合的差集。

Set 型应用场景

去重:利用集合元素的唯一性,对数据进行去重处理,如统计网站的独立访客数。共同好友查找:将每个用户的好友列表存储为一个集合,通过 SINTER 命令可以快速找出两个用户的共同好友。标签系统:为每个对象,如文章、商品等添加标签,将标签存储在集合中,方便进行标签的管理和查询。

七、ZSet 型操作命令

添加与删除元素

ZADD [score member ...]:向有序集合 key 中添加一个或多个元素,并为每个元素指定分数。ZREM [member ...]:从有序集合 key 中移除一个或多个元素。 获取元素

ZRANGE [WITHSCORES]:返回有序集合 key 中指定范围的元素,按分数从小到大排序,WITHSCORES 选项可同时返回元素的分数。ZREVRANGE [WITHSCORES]:返回有序集合 key 中指定范围的元素,按分数从大到小排序。 排名与分数操作

ZRANK :返回元素 member 在有序集合 key 中的排名(从 0 开始),按分数从小到大排序。ZREVRANK :返回元素 member 在有序集合 key 中的排名,按分数从大到小排序。ZSCORE :返回元素 member 在有序集合 key 中的分数。

ZSet 型应用场景

排行榜:利用有序集合的分数和排序功能,实现各种排行榜,如游戏排行榜、文章阅读量排行榜等,根据分数对元素进行排名。热门列表:根据元素的热度,如点击量、点赞数等作为分数,将元素存储在有序集合中,通过 ZRANGE 或 ZREVRANGE 获取热门元素列表。

← 上一篇 MySQL——表添加索引多种方式

记得点赞、关注、收藏哦!

下一篇 JUC小册——公平锁和非公平锁 →