Redis学习笔记

Redis介绍

  • redis由C语言开发,英文全称为:remote dictionary server,是key-value类型的内存型数据库。

使用场景

  • 待补充。。。

Redis各版本特性介绍

  • Redis先后经历了多个版本,目前最新版本是6.2。这部分对各版本的主要特性做一介绍。
  1. Redis 3.0
  2. Redis 4.0
  3. Redis 5.0
  4. Redis 6.0
    • 新增ACL权限控制功能:

Redis数据类型

  • Redis为key-value类型的数据,key为字符串类型,value有五种类型,各类型具体如下:
  • 字符串类型
    • 跟平常的字符串类型不同,这里的字符串是简单动态字符串,即SDS(simple dynamic string),该类型的特性如下:1)。。。
  • 列表
  • 集合
  • 有序集合
  • 散列表(hashtable)

Redis中常用命令

  • key过期时间设置
    • Redis 中可以通过 4 个独立的命令来给一个键设置过期时间:
      • expire key ttl:将 key 值的过期时间设置为 ttl 秒。
      • pexpire key ttl:将 key 值的过期时间设置为 ttl 毫秒。
      • expireat key timestamp:将 key 值的过期时间设置为指定的 timestamp 秒数。
      • pexpireat key timestamp:将 key 值的过期时间设置为指定的 timestamp 毫秒数。
      • 注:不管使用哪一个命令,最终 Redis 底层都是使用 pexpireat 命令来实现的。
  • 各类型操作命令
  • 字符串:
  • 散列表哈希:
  • 集合set:

Redis写日志

  • Redis写日志有两种策略:RDB,AOF(Append Only File)
  • Redis生成 RDB 策略
    • Redis 提供了两个指令用于生成 RDB 文件:
    1. save:主线程执行,会阻塞;
    2. bgsave:调用 glibc 的函数fork产生一个子进程用于写入 RDB 文件,快照持久化完全交给子进程来处理,父进程继续处理客户端请求,生成 RDB 文件的默认配置。
    3. bgsave 子进程可以共享主线程的所有内存数据,读取主线程的数据并写入到 RDB 文件。在执行 SAVE 命令或者BGSAVE命令创建一个新的 RDB 文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的 RDB 文件中。
    4. 当主线程执行写指令修改数据的时候,这个数据就会复制一份副本, bgsave 子进程读取这个副本数据写到 RDB 文件,所以主线程就可以直接修改原来的数据。
  • AOF策略
    • 待补充。。。

Redis部署三种模式

  • 单节点模式
    • 原理:
    • 哨兵主要任务:
    • 部署方式:
  • 集群模式
    • 原理:
    • 哨兵主要任务:
    • 部署方式:
  • 哨兵模式
    • 原理:
    • 哨兵主要任务:
    • 部署方式:

Redis哨兵模式底层数据结构

之前在学习redis的时候,对Redis哨兵模式的底层数据结构化了个结构图,方便理解,辅助记忆。
在这里插入图片描述

Redis集群模式底层数据结构

Redis中一致性哈希

  • 待补充

Redis中渐进式哈希

  • 渐进式哈希:

其他

  • 待补充。。。。

参考资料

  • Redis设计与实现

欢迎走过路过的各位大佬关注我的微信公众号ItBeeCoder

在这里插入图片描述

### Redis 学习笔记概述 Redis 是一种高性能的键值存储系统,支持多种数据结构并提供丰富的功能。为了全面掌握 Redis 的使用方法和技术细节,一份详尽的学习笔记应当覆盖以下几个方面: #### 一、基础概念介绍 - **定义与特性** - Redis 是一个开源的内存数据结构存储库,可以用作数据库缓存和消息中间件[^1]。 - **应用场景** - 高效的数据读写操作使其适用于高速缓存场景;持久化的选项也允许作为可靠的主数据库。 #### 二、环境搭建指南 - **安装过程** - 安装完成后可以通过 `redis-server` 命令启动服务,默认情况下这会在前台运行并且占用当前终端会话[^2]。 - **后台模式配置** - 推荐通过编辑 `/usr/local/src/redis-6.2.6/redis.conf` 文件中的设置项使 Redis 在后台稳定工作。 #### 三、核心功能解析 - **基本命令集** - 包括字符串(Strings)、哈希(Hashes)、列表(Lists)等常见数据类型的增删改查指令。 - **高级特性应用** - 发布订阅(Pub/Sub),事务处理(Transaction),Lua脚本执行等功能的应用实例。 #### 四、集成开发实践 - **Spring Boot 整合案例** - 使用 Spring Data Redis 提供的 `RedisTemplate` 对象简化 Java 应用程序同 Redis 数据源之间的交互逻辑[^3]。 #### 五、优化策略探讨 - **性能调优技巧** - 考虑到 CPU 并非主要瓶颈因素而是受制于物理 RAM 和网卡吞吐能力的影响,合理规划硬件资源分配对于提升整体效率至关重要。 - **预加载机制说明** - 当应用程序首次上线前预先填充部分热点数据至 Redis 中可以有效缓解高峰期的压力,提高响应速度[^4]。 #### 六、可靠性保障措施 - **持久化方案对比** - RDB 快照方式能够在指定时间间隔内保存数据副本,确保意外断电等情况下的恢复可能性。 ```bash # 启动Redis服务器(建议采用守护进程方式) $ redis-server /path/to/redis.conf --daemonize yes ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值