Redis - 大厂程序员是怎么用的| 青训营

38 阅读5分钟

简介

Redis(Remote Dictionary Server) 是一个开源的、使用C语言编写的高性能键值对存储系统。它以内存为主要数据存储方式,支持持久化,提供了丰富的数据结构和功能,被广泛用于缓存、消息队列、排行榜、实时统计分析等场景。

以下是一些Redis的基础知识:

  1. 键值对存储:Redis是一个键值数据库,每个键都对应一个值。可以将任意类型的值存储在键中,包括字符串、哈希表、列表、集合和有序集合等。

  2. 数据结构:

    • 字符串(String):可存储任意类型的二进制数据,支持对字符串进行操作(如获取、设置、增加、减少、部分修改等)。
    • 哈希表(Hash):键值对的集合,适用于存储对象类型,可以对整个哈希表或单个字段进行读写操作。
    • 列表(List):有序的字符串列表,允许在头部或尾部插入、删除或读取元素。
    • 集合(Set):无序并且唯一的字符串集合,支持集合之间的交、并、差操作。
    • 有序集合(Sorted Set):在集合的基础上,每个元素都关联一个分数,支持按照分数顺序进行排序。
  3. 持久化:Redis支持两种持久化方式,用于将数据保存到磁盘上,以防止系统重启或停机时数据的丢失:

    • RDB(Redis Database):通过快照的方式对数据库进行定期或手动备份。
    • AOF(Append Only File):通过记录每个写操作的日志,重启时通过重新执行日志来还原数据。
  4. 发布-订阅:Redis支持发布-订阅模式,允许多个客户端订阅一个或多个频道,一旦有消息发布到频道上,所有订阅该频道的客户端都会接收到消息。

  5. 事务:Redis支持事务操作,即一系列命令的原子执行。通过MULTI和EXEC命令,可以将一组命令组成事务,保证这组命令的执行是连续的、不可被打断的。

  6. 过期时间:Redis支持为键设置过期时间,通过EXPIRE命令设置键的生存时间,到期后将自动被删除。

  7. 主从复制:Redis可以通过主从复制方式实现数据的备份和高可用性。主节点将写操作同步到从节点,从节点在主节点宕机时可以接管服务,保证了服务的可用性。

Redis的一些基础知识

主要包括其数据结构、持久化方式、发布-订阅、事务、过期时间和主从复制等重要特性和功能。在实际应用中,还可以通过脚本编程、管道等技术对Redis进行更高级的使用和优化。

  1. 字符串操作:

    • SET key value:设置指定键的值。
    • GET key:获取指定键的值。
    • INCR key:将指定键的值增加 1。
    • DECR key:将指定键的值减少 1。
    • APPEND key value:将值追加到指定键的值后面。
  2. 哈希表操作:

    • HSET key field value:将指定字段设置为指定值。
    • HGET key field:获取指定字段的值。
    • HMSET key field1 value1 field2 value2 ...:同时设置多个字段和值。
    • HMGET key field1 field2 ...:获取多个字段的值。
  3. 列表操作:

    • LPUSH key value1 value2 ...:将一或多个值从列表的左侧插入。
    • RPUSH key value1 value2 ...:将一或多个值从列表的右侧插入。
    • LPOP key:移除并返回列表的左侧第一个元素。
    • RPOP key:移除并返回列表的右侧第一个元素。
    • LLEN key:返回列表的长度。
  4. 集合操作:

    • SADD key member1 member2 ...:将一个或多个成员添加到集合中。
    • SREM key member1 member2 ...:从集合中移除一个

SQL的用途

a. 定义数据模型


CREATE TABLE default.test_insert_local
(
   `p_date` Date,
   `id` Int32
)
ENGINE = MergeTree
PARTITION BY p_date
ORDER BY id
SETTINGS index_granularity = 8192

b. 读写数据库数据


insert into default.test_insert_local values ('2022-01-01', 1);

select count() from default.test_insert_local;

离线数据分析

是指在批量处理数据时进行的分析任务,以下是一般的离线数据分析步骤:

  1. 数据获取:获取需要进行离线数据分析的数据。数据可以来自各种来源,如数据库、数据仓库、日志文件等。

  2. 数据清洗:对获取到的数据进行清洗和预处理,包括去除重复数据、处理缺失值、转换数据格式等。确保数据的准确性和一致性。

  3. 数据转换:将清洗后的数据进行转换和整理,以便后续分析使用。可能需要进行数据的聚合、重组、格式转换等操作,使得数据可以被分析工具正确解读。

  4. 建立数据模型:根据具体的分析需求,建立适当的数据模型或数据结构。这可以是关系型数据库模型、数据仓库模型、图模型等,以支持后续的分析操作。

  5. 特征提取和数据分析:根据具体的业务问题和分析要求,进行特征提取和数据分析。这可以包括统计分析、机器学习算法、数据挖掘等方法。

  6. 分析结果展示和可视化:将分析得到的结果整理和展示给相关的利益相关者,以帮助其理解和应用得到的分析结果。可以使用数据可视化工具、报告、仪表板等方式进行展示。

  7. 模型评估和优化:对分析模型和结果进行评估和优化。可以使用交叉验证、模型评估指标、调整参数等方法,以提高模型的准确性和鲁棒性。

  8. 结果应用和反馈:将分析结果应用于实际的业务场景中,并根据实际应用的情况进行反馈和改进。通过反馈机制,不断优化和改进离线数据分析的过程和结果。

参考文献:

链接:juejin.cn/post/719898…