Redis 操作命令大全及实战案例

阅读时长 8 分钟读完

Redis 简介

Redis 是一个开源的、高性能的、键值对数据库,也称为数据结构服务器,可以存储多种数据类型,包括字符串、哈希表、列表、集合和有序集合等。Redis 支持丰富的数据结构和操作命令,可以用于缓存、消息队列、计数器和实时统计系统等场景。

Redis 的特点:

  • 快速:Redis 使用内存作为主要的数据存储介质,可以在毫秒级别快速读写数据。
  • 持久化:Redis 支持数据持久化,可以把内存中的数据异步或同步写入磁盘。
  • 分布式:Redis 可以通过主从复制或分片技术实现数据分布式存储和读写负载均衡。
  • 可扩展:Redis 支持插件机制,可以通过插件扩展功能。
  • 稳定:Redis 采用 C 语言编写,经过多年实践验证,已成为一个稳定可靠的数据库。

Redis 数据结构和操作命令

Redis 支持多种数据结构和操作命令,下面介绍常用的数据结构和操作命令:

字符串

字符串是 Redis 最基本的数据结构,可以用来存储文本、数字或二进制数据。常用的字符串操作命令有:

  • SET key value:设置指定 key 的值为 value。
  • GET key:获取指定 key 的值。
  • DEL key:删除指定 key 和其对应的值。
  • INCR key:给指定 key 的值加上 1。
  • DECR key:给指定 key 的值减去 1。

示例代码:

-- -------------------- ---- -------
-- -- ----- ---
----- ----- - -----------------
----- ------ - ---------------------

-- -----
------------------ ------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- -----
------------------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- -----
------------------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ---
------------------- -- ------------- ------ -
  -- ----- ----- ----
  -------------------
---
-------------------- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

哈希表

哈希表是一种键值对集合,其中的键和值都是字符串类型。常用的哈希表操作命令有:

  • HSET key field value:设置指定 key 哈希表中的 field 字段的值为 value。
  • HGET key field:获取指定 key 哈希表中的 field 字段的值。
  • HDEL key field1 field2 ...:删除指定 key 哈希表中的多个字段。
  • HINCRBY key field increment:给指定 key 哈希表中的 field 字段加上 increment。

示例代码:

-- -------------------- ---- -------
-- -----
------------------- ------- ------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---
------------------- ------ --- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- -----
------------------- ------- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- -----
------------------- ------- ------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- -------
------------------------------ -------- -- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

列表

列表是一个有序的字符串集合,可以在列表的头部或尾部添加或删除元素。常用的列表操作命令有:

  • LPUSH key value1 value2 ...:向指定 key 列表的头部插入多个值。
  • RPUSH key value1 value2 ...:向指定 key 列表的尾部插入多个值。
  • LPOP key:从指定 key 列表的头部删除一个元素并返回该元素。
  • RPOP key:从指定 key 列表的尾部删除一个元素并返回该元素。
  • LRANGE key start stop:获取指定 key 列表中从 start 到 stop 的元素。

示例代码:

-- -------------------- ---- -------
-- ----
-------------------- ---- ---- ---- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ----
--------------------- -- --- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ----
------------------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

集合

集合是一个无序的字符串集合,不包含重复元素。常用的集合操作命令有:

  • SADD key member1 member2 ...:向指定 key 集合中添加多个值。
  • SMEMBERS key:获取指定 key 集合中的所有元素。
  • SISMEMBER key member:判断指定 key 集合中是否包含 member 元素。
  • SREM key member1 member2 ...:从指定 key 集合中删除多个元素。

示例代码:

-- -------------------- ---- -------
-- ----
------------------ ---- ---- ---- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ----
---------------------- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ----
----------------- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

有序集合

有序集合是一个有序的字符串集合,每个元素都有一个分值,可以根据分值排序。常用的有序集合操作命令有:

  • ZADD key score1 member1 score2 member2 ...:向指定 key 有序集合中添加多个元素。
  • ZRANGE key start stop:获取指定 key 有序集合中从 start 到 stop 的元素。
  • ZREVRANGE key start stop:获取指定 key 有序集合中从 start 到 stop 的逆序元素。
  • ZREM key member1 member2 ...:从指定 key 有序集合中删除多个元素。

示例代码:

-- -------------------- ---- -------
-- ------
------------------- -- ---- -- ---- -- ---- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ------
--------------------- -- --- ------------- ------ -
  -- ----- ----- ----
  -------------------
---

-- ------
------------------ ------------- ------ -
  -- ----- ----- ----
  -------------------
---

Redis 实战案例

Redis 不仅可以作为一个单机数据库使用,还可以通过分布式部署实现数据高可用和读写负载均衡,以下是 Redis 的实战案例:

缓存

Redis 可以作为一个内存缓存,可以显著提高读写性能。常见的缓存场景包括:

  • Web 页面缓存:把频繁访问的 Web 页面或页面片段缓存到 Redis 中,减少数据库访问。
  • 服务结果缓存:把频繁访问或计算的服务结果缓存到 Redis 中,加快响应速度。
  • 访问频率限制:记录每个 IP 或用户的访问次数并设置访问频率限制,防止恶意攻击。

消息队列

Redis 的列表可以作为一个简单高效的消息队列,可以用于实现异步任务,消息发布和订阅等场景。

实时统计

Redis 的计数器和有序集合可以用于实现实时数据的计数和排名,例如在线用户数统计、热门文章排名等。

总结

Redis 是一个高性能、稳定可靠的数据结构服务器,支持多种数据结构和操作命令,可以应用于缓存、消息队列、计数器和实时统计系统等场景。了解 Redis 的数据结构和操作命令,有助于我们设计和优化应用系统架构,提高系统性能和稳定性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654f41e37d4982a6eb838876

纠错
反馈