锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

09-Redis知识点分体分析及常见问题总结

时间:2023-04-07 08:07:00 eocrfmz2分体接地继电器

文章目录

  • 1、Redis技术入门
    • 核心知识点
    • 常见问题分析
    • 常见Bug分析
    • 课后作业
  • 2、Jedis与RedisTemplate应用实践
    • 核心知识点
    • 常见问题分析
    • 常见Bug分析
    • 课后作业
  • 3、Java中redis项目应用进阶
    • 核心知识点
    • 常见问题分析
    • 常见Bug分析
    • 课后作业
  • 4、Redis数据持久,事务。
    • 核心知识点
    • 常见问题分析
    • 常见Bug分析
    • 课后作业
  • 5、Redis架构设计与实践
    • 核心知识点
    • 常见问题分析
    • 常见Bug分析
    • 课后作业

1、Redis技术入门

核心知识点

常见问题分析

  • 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,del,setnx)
  • 哈希类型(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各种数据类型的应用场景?
  • Gson是什么?(Google一组用于操作json数据的API)

常见Bug分析

  • redis服务不能启动?(看容器日志)
  • redis指令应用错误(参考语法实践)
  • Jedis中连接Redis检查失败redis服务是否启动,ip端口是否正确,防火墙是否关闭)

课后作业

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

2、Jedis与RedisTemplate应用实践

核心知识点

  • JedisPool基本应用和设计分析
  • RedisTemplate对象应用实践分析
  • StringRedisTemplate应用实践分析
  • 基于业务定制RedisTemplate对象(简单定制,高级定制)

常见问题分析

常见Bug分析

  • 连不上远程redis服务?(redis服务是否启动,防火墙是否打开,ip和账号是否正确)
  • 基于RedisTemplate对象的incrment方法实现key注意值的结构类型?(Long)
  • 对象序列化和反序列化异常(必须注意序列化规则)

课后作业

  • 总结课堂知识点
  • 完成基于Jedis对象实现数据应用实践?
  • 完成基于RedisTemplate对象应用实践?
  • 预览并尝试完成03文档中的单点登录系统和简单的投票系统.

3、Java中redis先进的项目应用

核心知识点

  • 基于redis实现简单点登录系统(重点)
  • 基于redis实现简易活动投票系统(重点)?
  • 基于redis实现简易购物车统(重点)?
  • 项目菜单模块中redis应用实践(重点)?(两种方式)

常见问题分析

  • 基于redis存储用户状态时,你使用的数据类型是什么?(hash类型-key是随机串,
    value为hash方式存储的对象)
  • 通过redis存储登录状态,你觉得有什么弊端?(检查用户登录状态需要查询redis)
  • 基于redis实现某个活动的投票系统,你使用的数据类型是什么?(Set类型-不允许元素重复)
  • 在我们的业务对象中如何使用redis?(注入RedisTemplate或其子类)
  • 如何基于AOP方式应用Redis?(@EnableCaching,@Cacheable,@Cacheput)
  • 如何定制Aop方式应用redis时的数据序列化机制?(自己定制CacheManager接口实现类-RedisCacheManager)

常见Bug分析

  • 依赖注入异常?(检查对象是否交给了Spring管理,一个接口有多个实现时如何实现对象的注入)
  • 对象序列化存储异常?(假如是JDK方式的序列化,序列化化的对象需要实现JDK中的序列化接口)

课后作业

  • 总结课堂知识点
  • 完成AOP方式Redis应用实践。
  • 预习04-Redis中的持久化应用实践。

4、Redis数据持久化,事务。

核心知识点

  • Redis持久化背景?
  • Redis持久化机制以及持久化方式。
  • Redis中的事务背景。
  • Redis中的事务处理方式以及常用指令。

常见问题分析

  • 为什么要持久化?(更好的保证数据的可靠性,防止断电,系统宕机情况出现大量数据丢失)
  • Redis中持久化的方式有哪些?(RDB,AOF)
  • Redis中默认开启的持久化方式是?(RDB-快照方式的持久化)
  • 如何理解Redis中AOF方式的持久化?(记录我们所有的写操作指令)
  • 你是否了解AOF中的Rewrite操作?(重写aof日志文件,压缩日志文件,同时让日志文件中的指令与内存中的数据尽量一致)
  • 你了解Redis中的哪些持久化配置?(持久化的时机,…)
  • 说说Redis中Rdb和Aof方式持久化的优势和劣势?
  • 生产环境下如何应用Rdb和Aof的持久化方式?(两种都要配置)
  • Redis中常用事务指令有哪些?(watch,unwatch,multi,exec,discard)
  • Redis中是基于乐观锁方式处理事务吗?(是)

常见Bug分析

  • redis配置文件中配置出错导致redis服务无法启动?(vim指令不熟,容器服务启动一定要日志)
  • redis数据库连不上?(ip,port,服务启动,防火墙)

课后作业

  • 总结课上知识点
  • 课后查阅缓存穿透,击穿,雪崩相关内容.
  • 预习Redis架构设计。

5、Redis架构设计及实践

核心知识点

  • Redis 主从架构设计及实践(薪火相传,Master->Slave:全量同步和增量同步)
  • Redis 哨兵机制及应用实践 (反客为主,Master宕机了,哨兵会选择slave为Master)
  • Redis 集群架构设计及实践 (众志成城,多个Master齐心合力)

常见问题分析

  • 为什么需要Redis主从架构?(大部分缓存是读多写少)
  • 为什么需要Redis哨兵机制?(为了高可用,Master宕机可以选择Slave升级为Master)
  • 为什么需要Redis集群架构?(高可用,大量数据的存储需要)
  • 单纯的Redis主从架构存在什么问题?(Master宕机,整个主从不再支持写操作)
  • Redis哨兵(sentinel)作用是什么?(监控主从节点工作状态,主节点宕机,自动选择新的主节点)
  • Redis 从节点下还可有从节点吗?(可以的,薪火相传)
  • Redis主从加哨兵还存在什么明显缺陷?(主节点只有一个,支持可存储的数据量受限)
  • 集群架构要解决的主要问题是什么?(横向扩容,单个主节点不能支持更大并发的写操作,且容量有限)
  • 当架构设计中的redis服务有问题时怎么办?(一定要看容器日志 docker logs 容器id或容器名)
  • 命令行如何登录redis集群中的节点?(redis-cli -c -h 192.168.126.128 -p 8010)
  • 登录redis集群节点后,如何查询redis中的集群节点信息?(cluster nodes)
  • 如何停止多个redis容器?(参考docker stop redis-801{0…1})
  • Jedis中应用集群时的API是什么?(JedisCluster)
  • SpringBoot工程中如何配置Redis集群连接(spring.redis.nodes:…)
  • SpringBoot中如何应用lettuce连接池(依赖-common-pool2,application.yml)

常见Bug分析

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

课后作业

  • 总结课上知识点
  • 完成redis架构设计及实践
  • 尝试克隆gitee上面的jt-cloud-admin项目,然后按照项目中readme.txt中内容,将项目跑起来.
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章