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

Day01~Redis技术入门

核心知识点

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

常见问题分析

  • 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)
  • Set类型数据的特性?(散列,不记录元素添加顺序,不允许元素重复)
  • 操作set类型的常用指令?(sadd,smembers,spop,smove,scard,sunion)
  • Redis中各种数据类型的应用场景?
  • 你知道Redis数据库对应的Java客户端有哪些?(Jedis,RedisTemplate)
  • Redis数据库对应的配置文件是哪个?(redis.conf)

常见Bug分析

  • redis服务不能启动?(看容器日志)
  • Java中连接Redis失败?(检查ip地址,端口,防火墙,配置)
  • 单元测试时,RedisTemplate对象空指针?(检查@Test引入的是否正确)

课堂练习

  • 构建一个单例的JedisPool对象,基于此对象获取与redis的连接。

课后作业

  • 总结课上知识点
  • 完成Jedis方式对redis常用数据类型的操作
  • 预习RedisTemplate对常用数据类型的操作(Spring Boot工程)

Day02~基于RedisTemplate对象操作redis缓存。

核心知识点

  • RedisTemplate对象的基本应用(重点)
  • StringRedisTemplate对象的基本应用 (默认字符串序列化)
  • RedisTemplate对象的高度自定义实现(难点)

常见问题分析

  • RedisTemplate 对象默认的序列化方式是什么?(JDK方式)
  • RedisTemplate 对象按默认规则序列化时,我们的对象需要实现序列化接口吗?
  • StringRedisTemplate对象与RedisTemplate对象最本质的区别是什么?(序列化方式)
  • RedisTemplate对象基于默认的json方式序列化时会存储对象类型吗?
  • 如何修改RedisTemplate对象的序列化方式?(通过setXxx等方法设置序列化)
  • 自己有没有在项目中自己基于业务定义RedisTemplate对象呢?(有,修改序列化规则)

常见Bug分析

  • 基于RedisTemplate对象的incrment方法实现key值的递增时,注意值的结构类型?
  • 对象序列化和反序列化异常?(一定要注意序列化规则)

课后作业

  • 总结课上知识点
  • 完成RedisTemplate对象的定制应用(结合实践进行分析)
  • 完成文档中基于redis的单点登录Demo以及投票系统的简易实现(必须完成)
  • 预习Spring boot工程中基于AOP方式对redis数据库的操作。

Day03~Java中redis操作实践进阶

核心知识点

  • 基于redis实现单点登录系统?(在redis记录用户状态)
  • 基于redis实现某个活动的投票系统?
  • 工程中基于AOP方式应用redis数据库?(假如需要更大灵活性,还是推荐自己玩)

常见问题分析

  • 基于redis存储用户状态时,你使用的数据类型是什么?(hash类型)
  • 通过redis存储登录状态,你觉得有什么弊端?(检查用户登录状态需要查询redis)
  • 基于redis实现某个活动的投票系统,你使用的数据类型是什么?(Set类型)
  • 在我们的业务对象中如何使用redis?(注入RedisTemplate或其子类,AOP方式)
  • Spring工程中用于描述应用缓存的切入点注解你了解哪些?(@Cacheable,@CachePut,…)
  • Spring工程中假如需要基于AOP方式整合缓存应用需要在配置上加什么注解吗?(@EnableCaching)
  • Spring工程中CacheManager作用是什么?(管理缓存,定义缓存配置及实现,也可以定制)

常见Bug分析

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

课后作业

  • 总结课堂知识点
  • AOP方式实现缓存应用时配置key的有效期(定制)。
  • 预习redis数据的持久化,redis中的事务处理。

Day04~Redis持久化,事务以及架构实践

核心知识点

  • Redis 持久化
  • Redis 事务管理
  • Redis 主从架构,哨兵以及集群架构实践

常见问题分析

  • 为什么要持久化?(更好的保证数据的可靠性,防止数据断电丢失)
  • Redis中持久化的方式有哪些?(RDB,AOF)
  • 你了解Redis中的哪些持久化配置?
  • 如何理解Redis中AOF方式持久化内置的重写机制?
  • 说说Redis中Rdb和Aof方式持久化数据的优势和劣势?
  • 生产环境下如何应用Rdb和Aof的持久化方式?(两种都要配置)
  • Redis主从架构,哨兵,集群架构诞生的一个背景?
  • 单纯的Redis主从架构存在什么问题?(主机点宕机,整个主从不再支持写操作)
  • Redis哨兵(sentinel)做用是什么?(监控主从节点工作状态,主节点宕机,自动选择主节点)
  • 集群架构要解决的主要问题是什么?(单个主节点不能支持更大并发的写操作)

常见Bug分析

  • redis配置文件配置出错导致redis服务无法启动?(vim指令不熟)
  • 架构实践过程中要注意ip地址(最核心问题)。

课后作业

  • 总结课上知识点
  • 完成数据持久化,事务,架构实践的过程。

猜你喜欢

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