![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术积累
富兰克思
做一个集技术架构和技术管理的复合型人才
展开
-
一个利用递归算法解决高效率的随机数生成的问题
近一段时间 在面试过程中,问了一些资深架构师一个算法题,其实我觉得不难,但是出乎意外的是,没有一个人有一个好的方法和思路。今天晚上闲来无事,我就自己写了一个小的demo,算是一个分享吧。题目使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。(考察高效率,解决产生冲突的问题)问题分析其实这个题的重点是随机数、高效率,和解决冲突,很多人,一上来,就是redis的set,java的set来做去重,多线程的方式来并发执行,balabala,但是真正从理论上讲,这些人讲的,也都算可行,毕竟.原创 2021-11-23 22:15:27 · 1057 阅读 · 0 评论 -
Office转Pdf的Java实现
背景项目中需要在线预览文档,且文档格式有word、excel和ppt等多种Office格式的所以需要一中能在linux上运行的在线转换工具,经过github的查找,发现LibreOffice的方式,以下介绍以下具体方法准备环境安装LibreOfficeyum install libreoffice文件有点大,需要安装一段时间安装字体**字体一定需要安装,否则会出现乱码问题**1、下载字体yum groupinstall "fonts"2、修改字符集vim /etc/loc原创 2021-08-22 23:38:08 · 583 阅读 · 0 评论 -
Mybatis——关于实体构造函数与Mybatis字段映射的坑
现象今天一位同事找我看一个很奇怪的问题:执行一个单表的查询语句,结果老是报字段类型不匹配的错误,错误日志如下:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Err原创 2021-01-07 16:12:49 · 2341 阅读 · 2 评论 -
使用FRP作为内网穿透服务
背景需要远程访问办公环境的内网服务器,原来使用的是花生壳之类的软件,但是存在很多不确定性,最近研究了一下开源内网穿透软件frp,总结了一些心得,分享一下。条件一台具有公网IP的服务器,可以购买一台云服务器内网服务器若干,本次以一台为例frp软件,server端和client端nginx服务,作为多个http服务的转发目的实现mysql的访问实现redis的访问实现多个http服务的访问,因为frp转发http的端口,只能设定一个,所以需要一个nginx做所有http服务的转发,可以原创 2020-12-21 15:08:39 · 2407 阅读 · 0 评论 -
Docker-compose之Redis Cluster集群
概述Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。在Redis中,集群的解决方案有三种主从复制哨兵机制ClusterRedis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出。集群方案的对比1. 主从复制同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,读写分离原创 2020-11-18 14:41:58 · 2851 阅读 · 3 评论 -
CentOS7防火墙设置
防火墙开关设置关闭firewall:systemctl stop firewalld.service #停止firewall禁用firewallsystemctl disable firewalld.service #禁止firewall开机启动启用firewallsystemctl start firewalld.service #启用firewall端口管理开启7001-7006端口firewall-cmd --zone=public --add-port=7001-7006/原创 2020-11-18 11:14:10 · 125 阅读 · 0 评论 -
Docker-使用和管理本地镜像
登录镜像仓库以下以腾讯镜像仓库为例docker login -u 1000023424528 -p 123456 ccr.ccs.tencentyun.com1000023424528 : 镜像仓库的账号123456 : 镜像仓库的密码ccr.ccs.tencentyun.com :镜像仓库的地址给镜像打tagdocker tag 0e5574283393 ccr.ccs.tencentyun.com/franks/mysql:5.7 推送镜像docker push ccr.原创 2020-11-18 10:35:20 · 671 阅读 · 0 评论 -
Redis6新特性
Redis6新特性之前一直听别人说redis6出了,还实现了多线程,以后面试官问redis是单线程还是多线程这样的问题肯定要涨10个百分点,今天就结合antirez的博客和github文档看看redis到底实现了什么新技能。先看下antirez的概览:许多新的模块API。更好过期算法。SSL支持。ACL支持。新的RESP3协议。客户端缓存。多线程I/O。副本的无盘复制。redis-benchmark支持和redis-cli改进。Systemd 支持重写。redis集群代理的发布。原创 2020-11-18 10:02:32 · 5364 阅读 · 2 评论 -
HashMap红黑树原理分析
近期学习了 HashMap 实现原理,这篇咱们了解一下红黑树的设计,相比 jdk1.7 的 HashMap 而言,jdk1.8最重要的就是引入了红黑树的设计,当冲突的链表长度超过 8 个的时候,链表结构就会转为红黑树结构。01、故事的起因JDK1.8 最重要的就是引入了红黑树的设计(当冲突的链表长度超过 8 个的时候),为什么要这样设计呢?好处就是避免在最极端的情况下冲突链表变得很长很长,在查询的时候,效率会非常慢。红黑树查询:其访问性能近似于折半查找,时间复杂度 O(logn);链表查.原创 2020-10-16 14:46:45 · 4567 阅读 · 3 评论 -
设计模式——观察者模式
public class JdkDemo { public static void main(String[] args) { HashMap map = new HashMap(); for (int i = 0; i < 3000; i++) { map.put("key"+(i),"123"+i); } Set<Map.Entry> entrySet = map.entrySet();原创 2020-10-15 15:18:00 · 139 阅读 · 1 评论