2109-Redis课上知识点及问题总结

Day01~Redis技术入门

核心知识点

  • Redis技术简介(是什么,诞生背景,版本,基本架构)
  • Redis服务的基本操作(登录redis,基础指令,退出redis)
  • Redis中常用数据类型(string,hash,list,set)

常见问题分析

  • Redis是什么?(分布式Key/Value结构的缓存数据库,非关系型数据,NoSql数据库)
  • Redis数据库诞生的背景?(关系型数据库的访问压力比较大,本地内存不支持多服务实例共享)
  • Redis数据库的基本架构?(C/S,redis-cli,redis-server)
  • 你了解Redis有哪些基础指令?(redis-cli,redis-server,exit,clear,type,expire,shutdown,help,?,keys,flushall,flushdb)
  • 字符串类型有什么特点?(所有值都是字符串,空间动态分配,可以实现整数值的递增,递减,实现日志记录)
  • 操作字符串类型(string)的常用指令?(set,get,strlen,append,mset,mget,incr,incrby,decr,decrby)
  • 哈希类型(hash)数据有什么特性?(就是值还可以使用key/value结构存储,key无序,key相同值覆盖,存储对象方便)
  • 操作哈希类型(hash)的常用指令?(hset,hget,hgetall,hexits,hdel,hkeys,hvals,hincrby,hmget)
  • 列表类型(list)数据有什么特性?(链表,会记录添加的元素的顺序,元素允许重复,可以实现FIFO,FILO这些特性)
  • 操作列表类型(list)类型的常用指令?(lpush,rpop,rpush,lpop,lrem,lindex,ltrim,lset,linsert,lrange,rpoplpush,lpos)
  • Set类型数据的特性?(散列,不记录元素添加顺序,不允许元素重复)
  • 操作set类型的常用指令?(sadd,smembers,spop,smove,scard,sunion)
  • Redis中各种数据类型的应用场景?

常见Bug分析

  • redis服务不能启动?(看容器日志)
  • redis指令应用错误

课后作业

  • 总结课上知识点
  • 完成Redis常用数据类型操作
  • 预习redis客户端api实践

Day02~Jedis与RedisTemplate应用实践

核心知识点

  • 工程结构分析及项目创建
  • Jedis及JedisPool基本应用实践
  • RedisTemplate对象应用实践分析
  • StringRedisTemplate对象应用实践分析

常见问题分析

  • Jedis常用API有哪些?(Jedis,JedisPool,JedisPoolConfig)
  • Jedis如何存储POJO对象到redis?(将对象转换为json串,将对象以Hash形式进行存储)
  • RedisTemplate 对象默认的序列化方式是什么?(JDK方式)
  • RedisTemplate 对象按默认规则序列化时,我们的对象需要实现序列化接口吗?(需要)
  • StringRedisTemplate对象与RedisTemplate对象最本质的区别是什么?(默认序列化方式)
  • RedisTemplate对象基于默认的json方式序列化时会存储对象类型吗?(会)
  • 如何修改RedisTemplate对象的序列化方式?(通过setXxx等方法设置序列化)

常见Bug分析

  • 连不上远程redis服务?(redis服务是否启动,是否开启了防火墙,ip和账号是否正确,redis.conf配置问题)
  • 基于RedisTemplate对象的incrment方法实现key值的递增时,注意值的结构类型?(Long)
  • 对象序列化和反序列化异常?(一定要注意序列化规则)

课后作业

  • 总结课上知识点
  • 完成基于Jedis对象实现数据应用实践?
  • 完成CSDN文档中的SSO系统,简易投票系统设计及实现。
  • 预习并尝试完成RedisTemplate对象的定制应用(结合实践进行分析)

Day03~Java中redis操作实践进阶

核心知识点

  • 基于业务定制RedisTemplate对象?
  • 基于redis实现单点登录系统?(在redis记录用户状态)
  • 基于redis实现某个活动的投票系统?
  • SpringBoot工程中整合redis应用实践?

常见问题分析

  • 为什么要定制RedisTemplate对象?
  • 基于redis存储用户状态时,你使用的数据类型是什么?(hash类型)
  • 通过redis存储登录状态,你觉得有什么弊端?(检查用户登录状态需要查询redis)
  • 基于redis实现某个活动的投票系统,你使用的数据类型是什么?(Set类型)
  • 在我们的业务对象中如何使用redis?(注入RedisTemplate或其子类,AOP方式)

常见Bug分析

  • 依赖注入异常?(检查对象是否交给了Spring管理,一个接口有多个实现时如何实现对象的注入)
  • 启动AOP方式的缓存实现,在启动类或配置上类没有加@EnableCaching注解

课后作业

  • 总结课堂知识点
  • 完成课上RedisTemplate的定制。
  • 预习并尝试完成AOP方式实现Redis缓存应用。
  • 预习redis数据的持久化,redis中的事务处理。

Day04~Aop方式应用Redis,持久化,事务。

核心知识点

  • SpringBoot 中AOP方式应用Redis技术。
  • Redis持久化机制以及持久化方式。
  • Redis事务处理机制和常用指令应用。

常见问题分析

  • 为什么AOP方式应用redis?(优势-简单,劣势-不灵活)
  • 如何AOP方式应用redis?(说说步骤)
  • Aop方式应用Redis时如何进行序列化等方式定制?(修改CacheManager的默认配置)
  • Spring工程中用于描述应用缓存的切入点注解你了解哪些?(@Cacheable,@CachePut,@CacheEvict,…)
  • Spring工程中假如需要基于AOP方式整合缓存应用需要在配置上加什么注解吗?(@EnableCaching)
  • Spring工程中CacheManager作用是什么?(管理缓存,定义缓存配置及实现,也可以定制)
  • 为什么要持久化?(更好的保证数据的可靠性,防止数据断电丢失)
  • Redis中持久化的方式有哪些?(RDB,AOF)
  • 你是否了解AOF中的Rewrite操作?(重写aof日志文件)
  • 你了解Redis中的哪些持久化配置?
  • 说说Redis中Rdb和Aof方式持久化数据的优势和劣势?
  • 生产环境下如何应用Rdb和Aof的持久化方式?(两种都要配置)

常见Bug分析

  • AOP方式应用Redis不生效?(检查启动类或配置类上是否开启了缓存配置)
  • redis配置文件配置出错导致redis服务无法启动?(vim指令不熟,容器服务启动一定要日志)

课后作业

  • 总结课上知识点
  • 完成数据AOP方式应用redis,持久化,事务处理的过程。

Day05~Redis架构设计及实践

核心知识点

  • Redis 主从架构设计及实践(有备无患,薪火相传)
  • Redis 哨兵机制及应用实践 (谋权篡位,反客为主)
  • Redis 集群架构设计及实践 (众志成城,齐心合力)

常见问题分析

  • Redis主从架构,哨兵,集群架构诞生的一个背景?
  • 单纯的Redis主从架构存在什么问题?(主机点宕机,整个主从不再支持写操作)
  • Redis哨兵(sentinel)做用是什么?(监控主从节点工作状态,主节点宕机,自动选择新的主节点)
  • Redis 从节点下还可有从节点吗?(可以的,薪火相传)
  • Redis主从加哨兵还存在什么明显缺陷?(主节点只有一个,支持可存储的数据量受限)
  • 集群架构要解决的主要问题是什么?(横向扩容,单个主节点不能支持更大并发的写操作,且容量有限)
  • 当架构设计中的redis服务有问题时怎么办?(一定要看容器日志)

常见Bug分析

  • 架构实践过程中要注意ip地址(最核心问题)。
  • 服务内存不足,导致服务启动失败。

课后作业

  • 总结课上知识点
  • 完成redis架构设计及实践

猜你喜欢

转载自blog.csdn.net/maitian_2008/article/details/122408295