- 博客(83)
- 收藏
- 关注
原创 Redis主从复制
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
2023-08-30 05:00:00
404
原创 Redis缓存穿透和雪崩
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。
2023-08-30 05:00:00
313
原创 Redis 命令
要在 redis 服务上执行命令需要一个 redis 客户端。命令,该命令用于检测 redis 服务是否启动。该命令会连接本地的 redis 服务。
2023-08-27 06:00:00
917
原创 SpringBoot整合Redis
jedis :采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用jedis pool连接池!式lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了,更像NIO模式。说明︰在SpringBoot2.x之后,原来使用的jedis 被替换为了lettuce?
2023-08-27 06:00:00
260
1
原创 Redis.conf详解
在规定的时间内,执行了多少次操作,则会持久化到文件.rdb . aof。redis是内存数据库,如果没有持久化,那么断电即失去。可以设置redis密码,默认是没有密码的。APPEND ONLY模式 aof配置。配置文件unit单位对大小写不敏感。安全 SECURITY。通用 GENERAL。限制 CLIENTS。
2023-08-27 06:00:00
1634
原创 Redis基础知识
正如上面所说 Redis 是核心线程负责网络 IO ,命令处理以及写数据到缓冲,而随着网络硬件的性能提升,单个主线程处理⽹络请求的速度跟不上底层⽹络硬件的速度,导致网络 IO 的处理成为了 Redis 的性能瓶颈。明白Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!而多线程的目的,就是通过并发的方式来提升I/O的利用率和CPU的利用率。
2023-08-27 00:54:50
122
原创 线程安全问题
当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象时线程安全的。线程安全问题都是由全局变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则的话就可能影响线程安全。电影院卖票问题:100张票四个窗口同时卖。
2022-11-23 21:06:19
326
原创 多线程编程
例如,我们在使用Word时,Word可以让我们一边打字,一边进行拼写检查,同时还可以在后台进行打印,我们把。多进程稳定性比多线程高,因为在多进程的情况下,一个进程崩溃不会影响其他进程,而在多线程的情况下,任何一个线程崩溃会直接导致整个进程崩溃。进程和线程是包含关系,但是多任务既可以由多进程实现,也可以由单进程内的多线程实现,还可以混合多进程+多线程。,浏览器就是一个进程,视频播放器是另一个进程,类似的,音乐播放器和Word都是进程。线程是进程中的一个执行单元/执行路径,负责当前进程中程序的执行。
2022-11-23 21:05:36
410
原创 字符流Reader和Writer
输入流:把数据(键盘输入、鼠标、扫描仪等等外设设备)读入到内存(程序)中输出流:把内存(程序)中的数据输出到外设或其他地方,从文件角度简单总结就是,输入流就是读数据,输出流就是写数据。Reader:输入流、继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符16位Writer:输出流、继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)Reader是Java的IO库提供的另一个输入流接口。和的区别是,是一个字节流,即以byte为单位读取,而Reader。
2022-11-23 21:04:41
507
原创 文件与IO
流:就是内存与硬盘之间的桥梁,负责数据的运输,数据的流动是单向的。对象,即使传入的文件或目录不存在,代码也不会出错,因为构造一个。对象既可以表示文件,也可以表示目录。所创建的文件对象 它只是对路径所表示的文件进行的抽象。提供了一系列重载方法,可以过滤不想要的文件和目录。这种删除 是直接从硬盘里删除掉的 不走回收站。对象的某些方法的时候,才真正进行磁盘操作。
2022-10-28 20:54:15
527
原创 Map映射
voidclear]()从此映射中移除所有映射关系。Objectclone()返回此HashMap实例的浅表副本:并不复制键和值本身。boolean如果此映射包含对于指定键的映射关系,则返回true。boolean如果此映射将一个或多个键映射到指定值,则返回true。entrySet()返回此映射所包含的映射关系的Set视图。V返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回null。booleanisEmpty()如果此映射不包含键-值映射关系,则返回true。
2022-10-27 22:46:27
2325
原创 Queue
接口的大小可变数组的实现。在没有外部同步时,它们不支持多个线程的并发访问。此接口定义在双端队列两端访问元素的方法。将元素添加到双端队列的末尾,从双端队列的开头移除元素。在将双端队列用作堆栈时,元素被推入双端队列的开头并从双端队列开头弹出。最大堆:根结点的键值是所有堆结点键值中最大者,且每个结点的值都比其孩子的值大。最小堆:根结点的键值是所有堆结点键值中最小者,且每个结点的值都比其孩子的值小。是Queue的子接口 描述的是双端队列的操作 重点操作表的头尾。的区别在于,它的出队顺序与元素的优先级有关。
2022-10-27 22:43:18
339
原创 集合——list
JVM会创建方法调用栈,每调用一个方法时,先将参数压栈,然后执行对应的方法;用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。增量表示向量每次增加的元素数目。Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。List:支持角标操作,允许重复元素,允许null元素,一维数据实现。在实际应用中,需要增删元素的有序列表,我们使用最多的是。并允许包括 null 在内的所有元素 允许重复元素。并允许包括 null 在内的所有元素 允许重复元素。
2022-10-27 22:39:26
497
原创 Java集合
在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。就是提供一个容器用于存储数据,增加相对应的增删改查的方法,进行整体的封装->类集合的目的就是为了管理元素(增删改查)只不过对于容器而言,它不一定都是数组(链表、树、哈希表)Java提供了数组这种数据类型,可以充当集合,那么,我们为什么还需要其他集合类?
2022-10-27 22:38:02
498
原创 Object类
Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,。Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。在看类的定义时,有些类并没有标记extends 但默认继承自Object。
2022-10-13 15:07:18
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人