Redis小结

Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。

1. Redis 基本概念

  • 键值对存储:Redis 通过键值对存储数据,每个键都是一个字符串,值则可以是多种数据类型。
  • 内存存储:Redis 数据存储在内存中,因此读写操作非常快速。
  • 持久化:Redis 支持数据持久化,可以将内存中的数据异步保存到磁盘中。
  • 高可用:Redis 支持主从复制、哨兵模式和集群模式,提供高可用性和分布式数据存储。

2. 数据类型

  • 字符串(String):最基本的数据类型,可以存储任何类型的数据,如整数、浮点数、字符串等。
  • 哈希(Hash):用于存储键值对集合,类似于 Python 中的字典。
  • 列表(List):一个有序的字符串列表,可以用作队列或栈。
  • 集合(Set):一个无序的字符串集合,不允许重复元素。
  • 有序集合(Sorted Set):一个带有分数的有序字符串集合,按分数排序。
  • 位图(Bitmap):用于操作二进制位的字符串。
  • HyperLogLog:用于估算基数(去重后的元素个数)的一种数据结构。
  • 地理空间索引(Geospatial):用于存储地理位置信息并进行操作。

3. 常用命令

3.1 字符串操作
  • SET key value:设置键的值。
  • GET key:获取键的值。
  • INCR key:将键的值增加 1(键值必须是整数)。
  • DECR key:将键的值减小 1(键值必须是整数)。
  • APPEND key value:将值追加到键的当前值之后。
3.2 哈希操作
  • HSET key field value:设置哈希表中的字段值。
  • HGET key field:获取哈希表中的字段值。
  • HGETALL key:获取哈希表中的所有字段和值。
  • HDEL key field:删除哈希表中的一个或多个字段。
3.3 列表操作
  • LPUSH key value:在列表头部添加一个或多个值。
  • RPUSH key value:在列表尾部添加一个或多个值。
  • LPOP key:移除并返回列表的头元素。
  • RPOP key:移除并返回列表的尾元素。
  • LRANGE key start stop:获取列表中指定范围的元素。
3.4 集合操作
  • SADD key value:向集合添加一个或多个成员。
  • SREM key value:移除集合中的一个或多个成员。
  • SMEMBERS key:返回集合中的所有成员。
  • SISMEMBER key value:判断值是否是集合中的成员。
3.5 有序集合操作
  • ZADD key score value:向有序集合添加一个或多个成员,或者更新已存在成员的分数。
  • ZREM key value:移除有序集合中的一个或多个成员。
  • ZRANGE key start stop [WITHSCORES]:返回有序集合中指定范围的成员。
  • ZSCORE key value:返回有序集合中成员的分数。

4. 持久化机制

  • RDB(Redis Database):将内存中的数据定期保存到磁盘上,生成快照。
  • AOF(Append Only File):通过将每个写操作记录到日志文件中,实现持久化。

5. 事务

  • Redis 的事务通过 MULTIEXECDISCARDWATCH 等命令实现。
  • MULTI:开始一个事务。
  • EXEC:执行事务中的所有命令。
  • DISCARD:取消事务。
  • WATCH key:监视一个或多个键,如果在事务执行前这些键被修改,则事务被中止。

6. 发布/订阅

  • 发布/订阅(Pub/Sub):Redis 提供了发布/订阅消息系统,通过 PUBLISHSUBSCRIBEUNSUBSCRIBE 等命令实现。

7. 主从复制和高可用

  • 主从复制:通过 SLAVEOF 命令设置从节点,从节点会自动同步主节点的数据。
  • 哨兵模式:通过 Redis Sentinel 实现主从切换和故障检测。
  • 集群模式:通过 Redis Cluster 实现数据分片和高可用。

8. 常用工具

  • redis-cli:Redis 的命令行工具,用于与 Redis 服务器进行交互。
  • Redis Desktop Manager:一个图形化的 Redis 管理工具。
  • redis-benchmark:Redis 的性能测试工具。

9. 使用场景

  • 缓存:通过设置过期时间,Redis 可以用作缓存系统,减轻数据库压力。
  • 会话存储:存储用户会话信息,实现快速访问。
  • 消息队列:利用 Redis 的列表或有序集合,实现简单的消息队列。
  • 排行榜:利用 Redis 的有序集合,实现实时排行榜。

相关推荐

  1. Redis小结

    2024-07-22 23:26:03       18 阅读
  2. Redis小记(1)

    2024-07-22 23:26:03       60 阅读
  3. Redis 使用小记

    2024-07-22 23:26:03       31 阅读
  4. 学习小记-一些Redis小知识

    2024-07-22 23:26:03       21 阅读
  5. Nuget小结

    2024-07-22 23:26:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 23:26:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 23:26:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 23:26:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 23:26:03       55 阅读

热门阅读

  1. SpringBoot中如何使用RabbitMq

    2024-07-22 23:26:03       11 阅读
  2. 【Python】Pandas简要教程

    2024-07-22 23:26:03       16 阅读
  3. 0基础认识C语言(函数)

    2024-07-22 23:26:03       20 阅读
  4. Gradle构建加速:自定义缓存策略全解析

    2024-07-22 23:26:03       14 阅读
  5. 2024.7.22

    2024-07-22 23:26:03       12 阅读
  6. Webpack 5 Tree Shaking与Module Federation

    2024-07-22 23:26:03       15 阅读
  7. MUX-VLAN基本概述

    2024-07-22 23:26:03       17 阅读
  8. 探索特征降维的奥秘:sklearn中的分层方法

    2024-07-22 23:26:03       11 阅读
  9. 学习数据处理的三要点

    2024-07-22 23:26:03       14 阅读