11 2023 档案

摘要:redis缓存问题 缓存击穿 缓存击穿是指热点key在某个时间点过期的时候,而恰好在这个时间点对这个Key有大量的并发请求过来,从而大量的请求打到db 解决方案: 利用互斥锁,缓存中没有,先获取锁,再去请求数据库,写入缓存,这样后面的数据就可以从缓存中拿到数据了不对该数据设置过期时间,而是由专门的定 阅读全文
posted @ 2023-11-29 10:09 拾光师 阅读(9) 评论(0) 推荐(0) 编辑
摘要:有时候需要存储一组数据,之前使用数组,但是数组具有固定的容量,但是在写程序时并不知道需要多少对象,在java.util包下提供了一套完整的集合类,包含List、Set、Queue、Map。java集合类都可以自动地调整自己的大小。 在创建集合时,经常使用泛型,可以在编译期防止将错误的类型放入到集合中 阅读全文
posted @ 2023-11-28 10:02 拾光师 阅读(9) 评论(0) 推荐(1) 编辑
摘要:redis配置 注意:我使用的版本是6.0.10,不同版本可能略有差别 redis的配置主要集中在redis.conf文件中,接下来就来看一下redis.conf中包含了哪些内容 INCLUDES模块 该模块下可以使用include来包含其他的redis配置文件,将其他配置文件引入进来 # incl 阅读全文
posted @ 2023-11-27 10:07 拾光师 阅读(150) 评论(0) 推荐(0) 编辑
摘要:redis集群 注意:我使用的版本是6.0.10,不同版本可能略有差别 redis集群的出现解决了redis在分布式方面的需求(3.0版本出现),而且解决了原本的哨兵模式sentinel无法解决从节点下线的问题。 redis-cluster使用虚拟槽的方式来进行分片,把所有的节点映射到0-16383 阅读全文
posted @ 2023-11-25 14:01 拾光师 阅读(18) 评论(0) 推荐(0) 编辑
摘要:redis事务 注意:我使用的版本是6.0.10,不同版本可能略有差别 redis事务就是一组命令的集合,一个事务中所有命令都会序列化,按顺序的串行化执行而不会被其他命令插入 Redis的事务仅仅是保证事务里的操作会被连续独占的执行,因为是单线程架构,在执行完事务内所有指令前是不可能再去同时执行其他 阅读全文
posted @ 2023-11-23 10:30 拾光师 阅读(11) 评论(0) 推荐(0) 编辑
摘要:redis数据结构 redis全名(Remote Dictionary Server),即远程字典服务 redis的值的数据结构类型有String、List、Set、Hash、zset(sorted set,有序集合)、Bitmaps(位图)、HyperLogLogs 注意:我使用的版本是6.0.1 阅读全文
posted @ 2023-11-21 10:00 拾光师 阅读(56) 评论(0) 推荐(0) 编辑
摘要:函数式编程 函数式编程强加了额外的约束,即所有数据必须是不可变的:设置一次,永不改变。将值传递给函数,该函数然后生成新值但从不修改自身外部的任何东西,不可变对象和无副作用范式解决了并发编程中最基本和最棘手的问题之一。 Lambda表达式只支持函数式接口,也就是只有一个抽象方法的接口 普通用法和函数式 阅读全文
posted @ 2023-11-20 10:27 拾光师 阅读(4) 评论(0) 推荐(0) 编辑
摘要:redis主从复制 注意:我使用的版本是6.0.10,不同版本可能略有差别 虽然redis有持久化的功能可以保证redis服务重启不会丢失数据,但是如果redis服务器的硬盘损坏就会导致数据丢失,使用主从复制来避免这种单点故障。 主机数据更新后根据配置和策略自动同步到备机的master/slave机 阅读全文
posted @ 2023-11-18 13:21 拾光师 阅读(9) 评论(0) 推荐(0) 编辑
摘要:java stream操作 Stream是什么 Stream又称为流,可以将集合转换为一种流,对集合中的每个元素进行一系列的流式操作,流并不存储元素,对流的操作也不会修改数据源 数据源 转换为--》流 》进行中间操作 》终止操作 多个中间操作可以连接起来形成一个流水线,除非流水线触发终止操作,否则中 阅读全文
posted @ 2023-11-17 10:29 拾光师 阅读(39) 评论(0) 推荐(0) 编辑
摘要:redis过期删除 redis的键可以设置过期时间,但是并不是每个键一到过期时间就会立即删除,redis不可能给每个设置过期时间的key上添加一个定时器来监视是否过期,CPU根本承受不了如此多的定时线程 注意:我使用的版本是6.0.10,不同版本可能略有差别 删除策略 存在的删除策略: 定时删除 在 阅读全文
posted @ 2023-11-16 09:57 拾光师 阅读(69) 评论(0) 推荐(0) 编辑
摘要:redis持久化 为了防止数据丢失,redis需要将数据从内存dump到磁盘,也就是redis持久化,redis持久化有两种方式RDB和AOF 注意:我使用的版本是6.0.10,不同版本可能略有差别 RDB RDB是指Redis DataBase,在指定的时间间隔内,将内存中数据的快照写入到磁盘du 阅读全文
posted @ 2023-11-14 10:20 拾光师 阅读(19) 评论(0) 推荐(1) 编辑
摘要:反射 Java提供反射来在运行时状态下动态的获取类的属性、方法等信息,在框架中很多地方都应用到了反射 反射的操作 获取Class对象 获取Class对象的四种方式 // 第一种Class<Person> clazz = Person.class;// 第二种Person person = new P 阅读全文
posted @ 2023-11-13 10:32 拾光师 阅读(8) 评论(0) 推荐(0) 编辑
摘要:redis优点及场景 redis为什么会那么快 内存操作 单线程,避免了频繁的上下文切换 采用了非阻塞I/O多路复用机制(提供了select、epoll、kqueue等函数) 使用场景 缓存 redis提供了缓存过期时间设置,也提供了控制最大内存和内存溢出后的淘汰策略 排行榜系统 redis可以使用 阅读全文
posted @ 2023-11-10 14:40 拾光师 阅读(9) 评论(0) 推荐(0) 编辑
摘要:网络IO 阻塞模型 在之前网络通信都是阻塞模型 客户端向服务端发出请求后,客户端会一直处于等待状态,直到服务器端返回结果或网络出现问题 服务器端也是如此,在处理某个客户端A发来的请求时,另一个客户端B发来的请求会等待,直到服务器端的处理线程线程上一个请求的处理 在服务端使用ServerSocket来 阅读全文
posted @ 2023-11-08 10:08 拾光师 阅读(24) 评论(0) 推荐(0) 编辑
摘要:redis基本命令 注意:我使用的版本是6.0.10,不同版本可能略有差别 redis服务和客户端都启动之后,就可以进行存取操作了 测试连接 ping 基本存取 set k1 hello OKget k1 "hello" 切换数据库 redis默认存在16个数据库,默认使用的是0,可以使用selec 阅读全文
posted @ 2023-11-07 09:52 拾光师 阅读(52) 评论(0) 推荐(0) 编辑
摘要:zip压缩 zip文档可以以压缩格式存储一个或多个文件,可以使用ZipInputStream读取Zip文档,使用ZipOutputStream来写入到Zip文件中 ZipInputStream读取 ZipInputStream zin = new ZipInputStream(in);ZipEntr 阅读全文
posted @ 2023-11-06 10:13 拾光师 阅读(106) 评论(0) 推荐(0) 编辑
摘要:redis安装 mac下直接安装 mac下安装redis还是很简单的(其实mac下安装什么软件都挺简单的,brew啥都有) brew install redis 之后就是漫长的等待,下了好久,终于下载完了 修改redis.conf中的配置 # 后台启动daemonize yes 启动服务端 redi 阅读全文
posted @ 2023-11-05 09:39 拾光师 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Nginx多端适配 通过nginx获取用户设备的Agent来判断 # 多端适配server { listen 7000; server_name zhhll.icu; location / { root /Users/zhanghe/Desktop/nginx; # 1.如果是静态页面判断agent 阅读全文
posted @ 2023-11-04 13:38 拾光师 阅读(14) 评论(0) 推荐(0) 编辑
摘要:NIO NIO早在JDK1.4中就已经提出来了(JSR51),在JDK1.7中对NIO进行了补充类库NIO.2(JSR 203),NIO又叫Non-blocking IO,即非阻塞IO 同步非阻塞 阻塞与非阻塞的区别: 阻塞时,在调用结果返回时,当前线程会被挂起,并在得到结果之后返回 传统的 IO 阅读全文
posted @ 2023-11-03 10:37 拾光师 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Nginx防盗链 # 源站点验证valid_referers *.zhhll.icu# 如果Referer Header头不符合valid_referers指令设置的有效Referer,变量$invalid_referer将被设置为1if($invalid_referer){ return 403; 阅读全文
posted @ 2023-11-02 11:24 拾光师 阅读(3) 评论(0) 推荐(0) 编辑
摘要:用户进程发起请求,内核接收到请求后,从I/O设备中获取数据到buffer中,再将buffer中的数据copy到用户进程的地址空间,该用户进程获取到数据后再响应客户端。 数据输入到buffer需要时间,从buffer复制数据至进程也需要时间,根据在这两段时间内等待方式不同,I/O动作可分为五种模式 阻 阅读全文
posted @ 2023-11-01 10:32 拾光师 阅读(55) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示