-
yexindonglai@163.com
2022-03-01 10:16
Redis
957°
0
什么是布隆过滤器布隆过滤器能解决什么问题布隆过滤器的优点布隆过滤器的缺陷布隆过滤器底层原理布隆过滤器误判如何解决误判java代码演示布隆过滤器布谷鸟过滤器什么是布隆过滤器是一个叫做布隆的小伙子发明出来的,底层使用bitmap(二进制位)实现,向bitmap中标记为1,表示这个元素已查询过,下次来查询的时候就不要再去数据库查了;这里涉及到了一个问题,就是说,如果我下次把这个不存在的数据插入到数据库了,那么也需要将布隆过滤器的bitmap刷新,因为数据库写了一篇,还需要在redis再写一遍,就涉及到双写了;布隆过滤器能解决什么问题布隆过滤器可以解决缓存穿透的问题;如果不知道缓存穿透,可以看我另一篇
-
yexindonglai@163.com
2022-03-01 10:15
Redis
1038°
0
redis的持久化存储策略什么是RDBRDB优点RDB缺点持久化触发方式1、手动触发RDB2、自动触发RDBbgsave底层原理AOFAOF优点AOF缺点rewrite机制(重写)为什么需要rewriterewrite原理AOF使用aof使用注意事项AOF文件内容说明Redis是如何进行持久化的(流程图)数据恢复redis的持久化存储策略redis是一个高性能的缓存数据库,既然是缓存,它的数据就是存储在内存中的,如果说服务器断电了,或者重启了,或者redis宕机了,他的数据就一定会丢失,所以为了解决这个问题,在丢失数据之前就将数据给持久化保存到磁盘,这种持久化技术,就是RDB和AOF什么是RD
-
yexindonglai@163.com
2022-03-01 10:14
Redis
1070°
0
写在前面注意事项主从复制配置和启动5.0版本以前,slaveof表示跟随的节点,后面2个参数是ip和端口5.0版本以后,replicaof表示跟随的节点,后面2个参数是ip和端口5.0版本以后,replicaof表示跟随的节点,后面2个参数是ip和端口只读模式,默认开启默认no为磁盘同步,改为yes则直连同步monitor表示定期监控哨兵节点,mymaster是哨兵的名称,名字随便起,因为哨兵也是集群的,所以集群下每个哨兵进程的名称也是一样的;这样就可以做到一套哨兵控制多套主从复制集群;127.0.0.16379是主节点的ip和端口最后的2是<quorum>,表示的是哨兵判断主节点是否发生故障
-
yexindonglai@163.com
2022-03-01 10:14
Redis
953°
0
redis事务的特性redis事务和mysql事务的区别使用redis事务的执行原理wathc命令实现乐观锁完redis事务的特性redis事务和mysql事务的区别使用redis事务的执行原理wathc命令实现乐观锁完redis事务的特性不同的客户端之间的事务不会互相阻碍;事务是一个原子操作,要么全部执行,要么全部都不执行,没有中间状态;redis的事务不支持回滚;作者认为,程序失败是由编程错误造成的,而这些错误应该在开发的时候就被发现;还有一点是redis不支持事务可以保证简单且快速;所以,在未提交的情况,不会更新key值!redis事务和mysql事务的区别redis的事务没有mysql
-
yexindonglai@163.com
2022-03-01 10:12
idea
1539°
0
第一种方法注意事项第二种方法2.1、先打开versionControl2.2、添加changelist2.3、将需要忽略的文件放到新建的changelist里面第三种方法(建议使用)文件内容如下在我们svn提交的时候想要看看自己改了哪些文件,可以在VersionControl—>LocalChanges中看到,并在里面提交代码即可,但是里面会有很多我们不想看到的文件,比如idea的配置文件*.iml、class文件之类的,想要忽略这些文件可以用以下三种方法:第一种方法在Setings—>Editor—>FileTypes—>Ignorefilesandfolders中添加需要忽略的文件和文件夹
-
yexindonglai@163.com
2022-03-01 10:08
Java
869°
0
堆内内存java的内存分为堆内内存和堆外内存,在了解堆外内存之前,先看看堆内内存是啥,堆内内存是受jvm管控的,也就是说,堆内内存由jvm负责创建和回收;创建和回收都是自动进行的,不需要人为干预;什么是堆外内存堆外内存又叫直接内存,是和操作系统内存直接挂钩的,堆外内存不受jvm的管制,所以可以认为堆外内存是jvm以外的内存空间,虽然不受jvm管控,但是堆外内存还是在java进程里面的,而不是由系统内核直接管理;所以它还是在java进程里面的;(终究逃不出java的手掌心);堆外内存和堆内内存他俩是没有任何关系的;当我们在使用堆内内存的对象时,如果对象内存占用超过了申请的堆内存,就会产生OOM异
-
yexindonglai@163.com
2022-03-01 10:05
Netty
1094°
0
前言什么是Buffer为什么需要BufferByteBufferByteBuffer内部结构代码示例1、初始化:ByteBufferbuffer=ByteBuffer.allocate(10)2、写入:buffer.put(byte)3、翻转:buffer.flip()4、读取:buffer.get(bytes)5、清除缓冲区:buffer.clear()拷贝duplicate()flip()和rewind()的区别ByteBufByteBuf内存池验证内存池读写示例1、实例化:ByteBufbuffer=PooledByteBufAllocator.DEFAULT.buffer(10,10)
-
yexindonglai@163.com
2022-03-01 10:00
Java
708°
0
FilteOutputStream不带缓冲的操作(FilteOutputStream类和FilteInputStream类),每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以在读写的字节比较少的情况下,效率比较低;FileOutputStreamfileOutputStream=newFileOutputStream("D:\\1.txt");BufferedOutputStreamBufferedOutputStream是带缓冲区的输出流,不管是BufferedOutputStream还是BufferedInputStream里面都自带了默认缓冲区,大小是81
-
yexindonglai@163.com
2022-03-01 10:00
IO
1236°
0
什么是IO为什么要学习IO用户态与内核态IO的分类1.文件系统的IO2.网络的IO网络IO是如何连接的?读队列(Receivequeue)和写队列(Sendqueue)网络IO的分类BIONIO(流程图)2.1.2NIO的分类NIO出现的问题多路复用selectpollselect和poll的弊端epollmmapET和LT什么是IOinput和output的简写,意思是输入和输出;也可以是读取(read)或者写入(write);当应用程序需要读或者写数据时都是往内存中进行读写操作的;在由CPU将内存中的数据通过IO传输到外围设备,比如网卡、磁盘、键盘、鼠标、显卡等等;而操作系统给出了相应的读
-
yexindonglai@163.com
2022-03-01 09:57
Docker
1303°
0
什么是docker启动和停止docker帮助命令镜像命令容器命令查看容器状态命令限制容器内存大小限制容器内存1.不设置2.设置-m,—memory,不设置—memory-swap3.设置-m,—memory=a,—memory-swap=b,且b>a4.设置-m,—memory=a,—memory-swap=-1提交镜像commit当前容器生成新镜像挂载-v配置容器环境变量-e镜像保存、加载镜像保存加载已保存的镜像在宿主机上执行容器内的命令网络命令network查看本机docker所有网络创建网络将容器加入到当前网络断开容器的网络(容器必须是运行状态才能断开连接)查看网络的详细信息删除网络删除