Redis知识点以及分体分析

Redis技术入门

核心知识点

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

常见问题分析

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和端口是否正确,防火墙是否关闭)

Jedis与RedisTemplate应用实践

核心知识点

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

常见问题分析

Jedis常用API有哪些?(Jedis,JedisPool,JedisPoolConfig)
Jedis如何存储POJO对象到redis?(将对象转换为json串,将对象以Hash形式进行存储)
Gson是什么?(Google公司推出的用于操作JSON格式数据的一组API)
JedisPool是什么?(一个Jedis连接池对象,所有池对象都有一种享元设计)
我们在应用JedisPool连接池时,如何保证此对象在内存中是唯一的?(双重锁校验的单例模式)
RedisTemplate对象的作用?(Spring框架中推出一个用于操作Redis的API对象)
RedisTemplate 对象默认的序列化方式是什么?(JDK方式,默认key和value需要实现Java中序列化接口)
RedisTemplate 对象按默认规则序列化时,我们的对象需要实现序列化接口吗?(需要)
如何修改RedisTemplate对象的序列化方式?(通过setXxx等方法设置序列化)
RedisTemplate应用了什么设计模式?(模板方法模式)
你是如何学习RedisTemplate对象的应用的?(参考官方文档,demo,源代码)
什么场景下使用StringRedisTemplate?(key/value序列化方式都是string时)
RedisTemplate对象你做过定制实现?(做过,定制过key/value的序列化方式)

常见Bug分析

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

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中的序列化接口)

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架构设计及实践

核心知识点

  • 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地址(最核心问题)。
  • 服务内存不足,导致服务启动失败。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A浅笑。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值