跳到主要内容

Redis

Redis 是一个开源的内存数据结构存储系统,通常被称为 NoSQL 数据库。以下是关于 Redis 的主要特点和用途:

  1. 内存数据存储:数据完全存储在内存中,这使得它能够提供极快的读写速度。
    • 它支持多种不同类型的数据结构,如字符串、哈希表、列表、集合和有序集合等。
  2. 持久化:
    • Redis 提供了两种持久化机制:快照(RDB)和日志(AOF)。
    • 这些机制可以将内存中的数据定期保存到磁盘上,确保数据的持久性。
  3. 高性能:
    • Redis 的内存数据存储模型和非阻塞 I/O 设计,使它能够提供毫秒级的响应时间。
    • 它可以每秒处理数十万到数百万的请求,非常适合需要高吞吐量的应用程序。
  4. 多种用例:
    • Redis 可以用作缓存系统、消息队列、状态管理器和实时应用程序的数据存储。
    • 它还可以用于构建诸如计数器、排行榜和限流器等各种应用场景。
  5. 分布式和集群:
    • Redis 支持主从复制和哨兵模式,可以实现高可用性和故障转移。
    • 它还提供了集群模式,可以水平扩展存储容量和吞吐量。
  6. 丰富的生态系统:
    • Redis 拥有大量的第三方库和工具,支持多种编程语言,如 Python、Java、Node.js 等。
    • 这使得 Redis 可以与各种应用程序和框架无缝集成。

Redis 的主要使用场景包括:

  • 缓存系统:用于缓存经常访问的数据,以提高应用程序的响应速度。
  • 消息队列:作为异步任务处理和事件驱动型应用程序的消息队列中间件。
  • 实时应用程序:用于存储和管理实时数据,如在线游戏排行榜、实时聊天和实时仪表板。
  • 计数器和限流器:用于构建各种类型的计数器,如网站访问量统计和API限流。
  • 分布式锁和状态管理:用于协调分布式系统中的并发访问和状态管理。

redis常用语法

  1. 键值操作
    • SET key value: 设置键值对
    • GET key: 获取键对应的值
    • DEL key: 删除指定的键
    • EXPIRE key seconds: 设置键的过期时间
  2. 数据结构
    • 字符串 (String)
      • APPEND key value: 将值追加到键的末尾
      • INCR key: 将键的值递增 1
      • DECR key: 将键的值递减 1
    • 哈希 (Hash)
      • HSET key field value: 设置哈希表中的字段
      • HGET key field: 获取哈希表中指定字段的值
      • HDEL key field: 删除哈希表中的指定字段
    • 列表 (List)
      • LPUSH key value1 [value2 ...]: 将一个或多个值推入列表的头部
      • RPOP key: 移除并获取列表的最后一个元素
      • LRANGE key start stop: 获取列表指定范围内的元素
    • 集合 (Set)
      • SADD key member1 [member2 ...]: 将一个或多个成员添加到集合中
      • SREM key member1 [member2 ...]: 从集合中移除一个或多个成员
      • SMEMBERS key: 返回集合中的所有成员
    • 有序集合 (Sorted Set)
      • ZADD key score1 member1 [score2 member2 ...]: 将一个或多个成员添加到有序集合中
      • ZRANGE key start stop [WITHSCORES]: 返回有序集合中指定区间内的成员
      • ZREM key member1 [member2 ...]: 从有序集合中移除一个或多个成员
  3. 事务和锁
    • MULTI: 开始事务
    • EXEC: 执行事务中的所有命令
    • DISCARD: 放弃事务
    • WATCH key [key ...]: 监视一个(或多个) key,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
  4. 发布/订阅
    • PUBLISH channel message: 将信息发布到指定的频道
    • SUBSCRIBE channel [channel ...]: 订阅一个或多个频道
  5. 持久化
    • SAVE: 同步保存数据库
    • BGSAVE: 异步保存数据库