首页
学习
活动
专区
工具
TVP
发布

猿天地

专栏作者
449
文章
653761
阅读量
59
订阅数
被问懵了,加密后的数据如何进行模糊查询?
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 我们知道加密后的数据对模糊查询不是很友好,本篇就针对加密数据模糊查询这个问题来展开讲一讲实现的思路,希望对大家有所启发。 为了数据安全我们在开发过程中经常会对重要的数据进行加密存储,常见的有:密码、手机号、电话号码、详细地址、银行卡号、信用卡验证码等信息,这些信息对加解密的要求也不一样,比如说密码我们需要加密存储,一般使用的都是不可逆的慢hash算法,慢hash算法可以避免暴力破解(典型的用时间换安全性)。 在检索时我们既不需要解密也不需
猿天地
2022-08-26
9750
MySQL模糊查询再也用不着 like+% 了!
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。 通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数
猿天地
2022-08-26
1.2K0
居然还有布谷鸟过滤器,有何用处呢?
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 背景 大家都知道,在计算机中,IO一直是一个瓶颈,很多框架以及技术甚至硬件都是为了降低IO操作而生,今天聊一聊过滤器,先说一个场景: 业务后端涉及数据库,当请求消息查询某些信息时,可能先检查缓存中是否有相关信息,有的话返回;如果没有的话可能就要去数据库里面查询,这时候有一个问题,如果很多请求是在请求数据库根本不存在的数据,那么数据库就要频繁响应这种不必要的IO查询。如果再多一些,数据库大多数IO都在响应这种毫无意义的请求操作,那么如何将
猿天地
2022-08-26
4220
ClickHouse 最近跟Es杠上了,日志场景谁更适合
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://c1n.cn/yoNYE 目录 背景 Elasticsearch vs ClickHouse 成本分析 环境部署 总结 背景 saas 服务未来会面临数据安全、合规等问题。公司的业务需要沉淀一套私有化部署能力,帮助业务提升行业竞争力。 为了完善平台系统能力、我们需要沉淀一套数据体系帮助运营分析活动效果、提升运营能力。 然而在实际的开发过程中,如果直接部署一套大数据体系,对于使用者来说将是一笔比较大的服务器开销。
猿天地
2022-08-26
2K0
一口气学完4种 Redis 集群方案,真是各有千秋
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 背景 在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有一台服务器可用服务就可用。 redis也是一样,为了解决单机故障引入了主从模式,但主从模式存在一个问题:master节点故障后服务,需要人为的手动将slave节点切换成为maser节点后服务才恢复。redis为解决这一问题又引入了哨兵模式
猿天地
2022-08-26
4950
搞懂系列三: G1垃圾收集器
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 一.G1 GC术语 1.1 并发   并发的意思是Java应用执行和垃圾收集活动可以同时进行 1.2 并行   并行的意思是垃圾收集运算是多线程执行的,比如CMS垃圾收集器的年轻代就是并行的,并行与串行的区别如下图,左边为串行,右边为并行: 1.3 STW   STW(stop the world)意思是在一个垃圾回收事件中,所有Java应用线程会被暂停。只有暂停,应用才不会产生新的垃圾,有益于垃圾收集器更好的标记垃圾对象。(这就像是
猿天地
2022-06-17
4070
比MyBatis快100倍,天生支持联表!
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://c1n.cn/my8R6 目录 简介 开源协议 界面展示 功能概述 技术选型 源码地址 简介 对于 Java 程序员来说,MyBatis、Hibernate 等都是常见的 ORM 框架,对于一些简单的 CRUD,事务支持非常不错。 但是有时候用起来可能比较繁琐,最近看到一个新的类似 ORM 的框架,具备了 ORM 框架的功能,同时也还有一点 GraphQL 语法的味道。 比 MyBatis 效率快 100 倍的
猿天地
2022-05-27
9970
我用Java几分钟处理完30亿个数据...
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://c1n.cn/GM8hb 目录 场景说明 模拟数据 场景分析 读取数据 处理数据 遇到的问题 场景说明 现有一个 10G 文件的数据,里面包含了 18-70 之间的整数,分别表示 18-70 岁的人群数量统计,假设年龄范围分布均匀,分别表示系统中所有用户的年龄数,找出重复次数最多的那个数,现有一台内存为 4G、2 核 CPU 的电脑,请写一个算法实现。         23,31,42,19,60,30,36,
猿天地
2022-05-16
4820
token 过期后,如何自动续期?
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 JWT token的 payload 部分是一个json串,是要传递数据的一组声明,这些声明被JWT标准称为claims。 JWT标准里面定义的标准claim包括: iss(Issuser):JWT的签发主体; sub(Subject):JWT的所有者; aud(Audience):JWT的接收对象; exp(Expiration time):JWT的过期时间; nbf(Not Before):JWT的生效开始时间; iat(Issued
猿天地
2022-05-09
5K0
JDK9为何要将String的底层实现由char[]改成了byte[]?
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串内容,为什么要这样做呢? 开门见山地说,从 char[] 到 byte[],最主要的目的是为了节省字符串占用的内存 。内存占用减少带来的另外一个好处,就是 GC 次数也会减少。 一、为什么要优化 String 节省内存空间 我们使用 jmap -histo:live pid | head -n 10 命令就
猿天地
2022-04-22
2240
代码规范 & 设计模式落地之路
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 — 1 — 前言 关于设计模式和代码规范问题还是有一些内容还是值得落笔和大家分享的。 — 2 — 正文 设计模式究竟是什么? 主流的说法,大致如此: 设计模式是解决可在许多不同情况下使用的问题的描述或模板,一般在OOP中最作为最佳实践的解决方案。 最佳实践一词笔者再几处介绍设计模式的地方,都有看到。但是设计模式真的就是OOP中,业务开发的最佳实践吗? 首先声明笔者的观点,我是如何理解设计模式的: 设计模式是一种代码规范,不同于空格
猿天地
2022-04-18
2310
超赞,老外的一种避免递归查询所有子部门的树数据表设计与实现!
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 文章来源:https://sourl.cn/aCCTwr | 目录 问题来了 查出所有子孙部门 查询子孙部门总数 判断是否叶子节点 要不试试这个方法? 查出所有子孙部门 查询子孙部门总数 判断是否叶子节点 其他基本操作 完结 ---- 通常树形结构的存储,是在子节点上存储父节点的编号来确定各节点的父子关系,例如这样的组织结构: 与之对应的表数据(department): 部门表结构(department) id          部门
猿天地
2022-04-08
1.2K0
IDEA牛逼!900行"又臭又长"的类重构,几分钟搞定
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 最近,在对已有项目进行扩展的时候,发现要改动的一个类它长900行,开放了近40个public接口,我流着泪把它给改完了。 为了防止这样的惨剧再次发生在我的身上,我觉得有必要写一篇博客来让广大程序猿同胞知道代码重构的重要性。 如果你身边有一个类写上千行的猿,一定要把此文转给ta 为什么类不能过长? 类过长——读不通,扩展不通 读不通——直接用滚轮滚都得好几秒,就算是原作者,时间长了恐怕也难以理清整个类,更不用说是其他的读者 扩展不通——
猿天地
2022-03-28
1970
一个 Mybatis 开发神器:Fast MyBatis 超好用
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 fastmybatis 是一个 mybatis 开发框架,其宗旨为:简单、快速、有效。零配置快速上手,无需编写 xml 文件即可完成 CRUD 操作。同时支持 mysql、sqlserver、oracle、postgresql、sqlite。 支持自定义 SQL,对于基本的增删改查不需要写 SQL,对于其它特殊 SQL(如统计 SQL )可写在 xml 中,支持与 Spring-Boot 集成,依赖 starter 即可,支持插件编写,支
猿天地
2022-03-21
6460
Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 来源:blog.csdn.net/mu_wind/article/details/109516995 Java8 Stream 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。 统计员工的最高薪资、平均薪资、薪资之和。 将员工按薪资从高到低排序,同样薪资者年龄小者在前。 将员工按性别分类,将员工按性别和地区分类,将员工按薪资是否高于8000分为两部分。 用传统的迭代处理
猿天地
2022-03-14
7290
Group By 深度优化,真是绝了!
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 、 来源:www.juejin.cn/post/6957696820621344775 导读 当我们交友平台在线上运行一段时间后,为了给平台用户在搜索好友时,在搜索结果中推荐并置顶他感兴趣的好友,这时候,我们会对用户的行为做数据分析,根据分析结果给他推荐其感兴趣的好友。 这里,我采用最简单的SQL分析法:对用户过去查看好友的性别和年龄进行统计,按照年龄进行分组得到统计结果。依据该结果,给用户推荐计数最高的某个性别及年龄的好友。 那么,假
猿天地
2022-03-04
3370
一口气说出 Redis 16 个常见使用场景
点击上方蓝色字体,选择“设为星标” 回复”学习资料“获取学习宝典 目录 缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞、签到、打卡 商品标签 商品筛选 用户关注、推荐模型 排行榜 1、缓存 String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。 2、数据共享分布式 String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享例如:分布式Session <d
猿天地
2022-03-04
3340
Mybatis-Plus 官方神器发布!
‍今天介绍一个 MyBatis - Plus 官方发布的神器:mybatis-mate 为 mp 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。
猿天地
2021-11-16
2670
个人笔记,深入理解 JVM,很全!
刷豆瓣看到《深入理解 JVM》出第三版了,遂买之更新 JVM 知识,本文为笔记,仅供个人 Review
猿天地
2021-11-08
2410
实属不易,一次 QPS 翻倍的 Java 服务性能优化
前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了。
猿天地
2021-11-08
6280
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档