为啥使用redis redis为什么使用netty

springboot2.2.0升级过程1、插件准备: maven helper 解决包冲突必备神器 。
2、通过上面的依赖项指定是通过spring-boot-starter-data-redis引入的spring-data-redis.项目中使用spring-boot版本0.RELEASE.那就直接升级到升级到RELEASE试试 。
3、springboot启动流程如下:启动流程主要分为三个部分,第一部分进行、SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器,第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块 。
4、每个SpringBoot程序都有一个主入口,也就是main方法,main里面调用SpringApplication.run()启动整个spring-boot程序,该方法所在类需要使用@SpringBootApplication注解 。
5、SpringBoot的启动主要是通过实例化SpringApplication来启动的 。
6、首先贴一张很不错的图,SpringBoot启动结构图,图片出自SpringBoot启动流程解析 。本文的分析基于Spring Boot 5,非Spring的代码只有下面这个启 。提供大量优秀的Web框架方便开发等等 。
产生堆外内存溢出:OutOfDirectMemoryError、springboot以后默认使用Lettuce作为操作redis的客户端 。它使用netty进行网络通信 。
OutOfMemoryError:PermGenspace这种情况出现可能是因为在程序中使用了大量的jar或者class , 从而导致java虚拟机装载类的空间不够 , 也就是与PermanentGenerationspace有关 。
堆内存溢出: OutOfMemoryError,是ERROR 。什么是Error:Error用于指示应用程序不应该试图捕获的严重问题 。什么是Exception:Exception类及其子类用于指示应用程序需要处理的异常 。
如果堆中没有内存完成实例分配,并且对也无法再扩展时 , 将会抛出OutOfMemoryError异常 。
堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的 , 用来存放类的信息的 。它和堆不同,运行期内GC不会释放空间 。
redis客户端选型-Jedis、lettuce、Redissonlettuce: 高级redis客户端,支持各种模式的redis连接和操作,高级特性几乎没有 。Redisson: 高级redis客户端,支持各种模式的redis连接和操作 , 同时提供一大堆的实用功能 。
我是使用java语言开发的,针对java语言,redis client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce 。
Jedis是一个Java语言编写的用于连接和操作Redis数据库的客户端库 。Redis是一个基于内存的高性能键值存储系统,Jedis提供了一组用于与Redis进行通信的Java API,允许开发人员在Java应用程序中使用Redis数据库 。
jedis就是基于java语言的redis客户端,集成了redis的命令操作,提供了连接池管理 。redis-cli是redis官方提供的客户端,可以看作一个shell程序,它可以发送命令对redis进行操作 。
为什么要使用Redis1、原因就是redis虽然读写很快,但是不适合做数据持久层,主要原因是使用redis做数据落盘是要以效率作为代价的,即每隔制定的时间,redis就要去进行数据备份/落盘,这对于单线程的它来说,势必会因“分心”而影响效率,结果得不偿失 。
2、因为Redis的存储分为内存存储、磁盘存储和log文件三部分 , 重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化 。
【为啥使用redis redis为什么使用netty】3、redis是内存数据库,访问速度非常快,所以能够解决的也都是这些缓存类型的问题,如下:会话缓存(Session Cache)最常用的一种使用Redis的情景是会话缓存(session cache) 。

    推荐阅读