数据库
文章平均质量分 78
伍六七AI编程
伍六七AI编程
展开
-
怎么统计一个网站的 UV 量?
Redis Bloom filter 大部分都知道,毕竟属于面试八股文中很重要的一个知识点。它可以用来解决缓存穿透的问题,可以判断 Redis key 是否在 DB 中,从而避免请求 DB 中不存在的数据,造成 DB 压力。它可以使用很小的空间,存储大规模的数据。判断存在不一定存在,但是判断不存在,一定不存在!但是 Redis HyperLogLog,很多人都不知道,但是在计算大规模数据的唯一数据量级的场景下,这是一个既高效又节省空间的方法。原创 2023-12-19 14:02:26 · 305 阅读 · 0 评论 -
Redis 从原理到最佳实践
大家好,我是伍六七。一个专注于输出 AI+ 编程内容的在职大厂资深程序员,全国最大 AI 付费社群破局初创合伙人,关注我一起破除 35 诅咒。Redis 基本上是大部分技术公司都会使用的缓存框架,但是我发现很多程序员其实并不懂 Redis。今天,阿七带大家从理论和实践的角度来了解和使用 Redis。原创 2023-12-03 13:53:50 · 875 阅读 · 0 评论 -
Redis 底层对 String 的 3 个优化
回答出来以上三点,表明你对 Redis 的 String 类型的源码是有研究的,而不是每天只顾 CRUD,只顾写业务。另外,也能表明你的技术深度,面试官一定会对你另眼相看哟!加油!原创 2023-10-20 12:29:35 · 561 阅读 · 0 评论 -
人人都要知道的,Redis缓存使用的三种模式
Cache Aside是一种常见的缓存模式,也是最简单的一种缓存模式。在Cache Aside模式中,应用程序首先从缓存中读取数据,如果缓存中不存在,则从数据库中读取数据,并将数据写入缓存中。在更新数据时,应用程序首先更新数据库中的数据,然后删除缓存中的数据。当下一次请求到来时,应用程序会从数据库中读取最新的数据,并将其写入缓存中。Cache Aside模式的优点是简单易用,缓存和数据库之间的数据一致性较好。原创 2023-10-19 12:19:29 · 574 阅读 · 0 评论 -
面试58同城!面试官问我redis 雪崩、穿透、击穿怎么处理?
结语:通过理解和应对 Redis 缓存雪崩、穿透和击穿的概念、原因和解决方案,Java 工程师们可以更好地应对面试中与缓存相关的问题,提升自己的面试竞争力。缓存雪崩指的是在某个时间点,缓存中的大量数据同时失效,导致大量请求直接落到数据库上,造成数据库压力过大,甚至引发系统崩溃。缓存击穿指的是某个热点数据的缓存过期,导致大量请求同时访问数据库,造成数据库压力过大。缓存穿透指的是恶意请求直接绕过缓存,直接请求数据库,导致数据库压力过大。同时,合理使用缓存技术和策略对于系统的性能和稳定性也至关重要。原创 2023-10-17 12:48:28 · 158 阅读 · 0 评论 -
差点跑路!布隆过滤器大key,引发Redis崩溃
在大数据场景下,布隆过滤器是一种常用的数据结构,用于快速判断元素是否存在。而 Redis 则是一种流行的缓存和数据存储系统,广泛应用于互联网领域。然而,当布隆过滤器的 key 过大时,会引发 Redis 的崩溃,给系统带来严重的影响。做了刚转行互联网不久的新人,来公司不久,做了一个计算弹窗 CTR 的功能,需要通过设备 id 去重,以计算弹窗的 UV CTR。我这个时候想到了布隆过滤器,在 Redis 存储布隆过滤器,布隆过滤器中存储弹过窗的设备 id。原创 2023-10-11 10:40:36 · 252 阅读 · 0 评论 -
redis实现布隆过滤器
布隆过滤器是一种基于概率的数据结构,用于判断一个元素是否存在于一个集合中。相比于传统的数据结构,布隆过滤器具有占用空间少、查询速度快的特点,常被用于缓存、爬虫去重等场景。Redis 作为一款流行的 NoSQL 数据库,也提供了对布隆过滤器的支持。本文将介绍如何使用 Redis 实现布隆过滤器,并提供 Java 示例代码和单元测试。在实际应用中,布隆过滤器可以有效地减少 I/O 操作和网络请求,提升系统性能和效率。通过 Redis 提供的布隆过滤器扩展模块,我们可以方便地在Java中实现布隆过滤器功能。原创 2023-09-27 16:55:45 · 375 阅读 · 0 评论 -
spring boot整合mybatis-plus
1 MyBatis-plus 介绍MyBatis- plus是MyBatis的一个功能强大的增强工具包,用于简化开发。该工具包为MyBatis提供了一些高效、有用、开箱即用的特性,使用它可以有效地节省开发时间。1.1 优势MyBatis-plus 提供基础增删改查、分页查询等接口,能够有效简化开发,提升开发效率。尤其是后台管理系统、运营系统等场景,特别适合使用MyBatis-plus进行开发。自带的代码生成器也很好用,可以生成器可以快速生成Mapper.java、Mapper.xml、dao、se原创 2021-09-09 17:57:17 · 534 阅读 · 1 评论 -
MySQL新技能,MySQL之Json类型
1 Json 类型简介MySQL 5.7 之后提供了Json类型,是MySQL 结合结构化存储和非结构化存储设计出来的一个类型。在某些场景下,Json 类型简直是福音。场景1: 用户画像,描述用户的标签等类似场景,比如互联网医院类系统的患者健康档案,有很多信息不是必填项,如:身高、体重、三围等等信息,可以使用 Json 存储。场景2: 游戏类场景;场景3: 存储图片等附属信息,比如图片的分辨率,图片标题等。2 让我们看看Json怎么用的创建表,并插入数据CREATE TABLE UserLo原创 2021-07-13 17:22:59 · 3103 阅读 · 0 评论 -
springboot-mybatis中xml怎么写
mybatis的xml 增删改查、自增id、分页查询等写法原创 2020-12-28 13:47:37 · 1443 阅读 · 0 评论 -
mysql索引下推(ICP)例子
1、索引下推是mysql5.6(包括)之后的优化策略。2、是否设置了索引下推,explain执行计划查看到了 rows 行数应该是一致的。因为索引下推只是减少了回表的次数。打开索引下推。set optimizer_switch='index_condition_pushdown=on';关闭索引下推set optimizer_switch='index_condition_pushdown=off';查看索引下推的设置状态show VARIABLES like '%optimizer_s原创 2020-12-21 17:59:55 · 656 阅读 · 1 评论 -
JAVA面试题之三—Mysql索引了解嘛?怎么优化查询效率?
Hash只支持单条数据的查询。很多时候我们需要更复杂的操作。BTree[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MKL6rIB9-1595459675581)(8B3F0F034EF54F4D81405D839B2958FB)]特点不再是二叉搜索,而是N叉搜索,树的高度会降低,查询快叶子节点,非叶子节点,都可以存储数据,且可以存储多个数据通过中序遍历,可以访问树上所有节点设计逻辑内存读写快,磁盘读写慢,而且慢很多磁盘预读:磁盘读写并不是按需读取,原创 2020-07-23 07:15:52 · 644 阅读 · 1 评论 -
【数据存储】从hashMap、mysql、redis、到分布式
从hashMap/mysql/redis/到分布式1 HashMap问题:从一个大数组(10000)中,找到特定的X。通常的解答:都是循环遍历一遍,查找X,需要全量IO。优化把大数据量,分为小数据量(4个数字)的组合。组成了2500个4个小数组。分而治之,依赖索引 / 路由 / hash 。X 计算hash值。 hashcode % 2500HashMap 或者 HashTable 的原理。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XC5HoUL0-15原创 2020-07-15 06:25:01 · 465 阅读 · 0 评论 -
oracle、mysql差异以及springboot中如何修改
oracle 迁移到 mysql1. JAVA代码修改1、修改配置2、POM文件,需要增加mysql对应的包3、主键策略修改,可以在建表的时候指定主键策略1.1 配置修改。oracle配置// oraclespring.datasource.test1.jdbc-url=jdbc:oracle:thin:@127.0.0.1:1521/orclspring.datasource...原创 2020-02-14 08:40:49 · 942 阅读 · 0 评论 -
springboot集成MongoDB
springboot集成MongoDB1 代码实现1.1 yml文件配置:1.2 实体类1.3 定义通用IService1.4 实现通用IService1.5 使用:1.6 测试:2 工具思路:Iservice 实现通用方法,增删改查,ServiceImpl实现具体方法。业务Service接口增加具体业务方法,业务ServiceImpl实现业务Service接口1 代码实现1.1 yml...原创 2019-12-31 10:19:57 · 555 阅读 · 2 评论 -
ES-script-查询7点到9点的数据
ES 版本6.2.4在使用 ES 进行统计的时候,经常会用到查询某个小时的统计数据,比如统计每个小时的数据;比如计算早晚高峰的数据。这些场景都可以使用 script 进行查询、统计。ES 语句{"query": { "bool": { "filter": [{ "range": { "datetime": { "from": "2019-10-01 00...原创 2019-11-04 11:44:48 · 2376 阅读 · 0 评论 -
数据库宕机且报 ORA-00020的错误
今天遇到一个系统,数据库无法正常运行,查看数据库的进程发现数据库已宕,结果如下:[oracle@xiaowu ~]$ ps -ef | grepora_oracle 6218 6161 0 09:39 pts/2 00:00:00 grepora_用超级管理员用户登录数据库时,系统报 ORA-00020的错误,很奇怪,数据库未启动,还报进程数超上限的错误。[转载 2017-06-28 17:07:30 · 1044 阅读 · 0 评论 -
ORACLE一次大量数据删除导致问题的处理
由于项目运行时间较久,导致ORACLE表中记录数太多,对这个表(以下称table1)的操作也比较多,包括查询更新,最后导致对table1的操作消耗cpu猛增,最后网站不能访问。由于知道是这个问题,所以就打算将历史数据备份,仅留最近一个月的数据在table1中。1、方案1:根据某个与时间相关的字段,一年一年的删除delete from table1 where data_id like原创 2017-05-21 11:30:57 · 8820 阅读 · 1 评论 -
oracle删除DBF文件
oracle删除DBF文件 曾经以为把所有的表清空drop掉后其文件已经删除,但实质DBF数据文件依然还存在,在ORADATA文件下。必须要这样删除 DROP TABLESPACE tablespace_name [ including contents [ and datafiles ] [ CASCADE C转载 2017-07-20 16:54:28 · 16823 阅读 · 0 评论 -
怎样查看oracle当前的连接数
SQL> select count(*) from v$session #当前的连接数SQL> Select count(*) from v$session where status='ACTIVE' #并发连接数SQL> select value from v$parameter where name = 'processes' --数据库允许的最大连接数SQL> show para转载 2017-07-18 09:39:12 · 529 阅读 · 0 评论 -
ORA-30036 的错误解决
There is not enough space left either due to the datafiles being full, autoextend which is not set at datafile level or due to a disk which's full.You'll have to check the size of the datafiles转载 2017-07-19 11:21:01 · 4190 阅读 · 0 评论 -
SQL批量替换
SQL替换语句 批量修改、增加、删除字段内容sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内容', '新内容')如 UPDATE Whir_ProductRelese SET ReleseName=REPLACE(ReleseName转载 2017-09-11 14:41:50 · 4026 阅读 · 0 评论 -
Linux 下 新增Oracle10g 实例
Linux 下 新增Oracle10g 实例主要分为5步:创建实例目录,创建密码文件,创建参数文件,创建建库脚本并建库,创建数据字典。其中,需要特别注意2点:目录的权限,即用户和所属用户组都要是oracle。可以切换到已存在的oracle用户或者以root创建,然后赋权。创建实例的时候指定编码。下面以 Oracle 10.2.0.1.0为例,开始创建:说明:此服务器转载 2017-09-11 17:45:43 · 874 阅读 · 0 评论 -
mybatis 获取不到Date类型的时分秒
解决办法换驱动。将最开始使用的 10 g 的驱动 ojdbc14.jar 换为 11 g 的驱动 ojdbc5.jar 或者 ojdbc6.jar;pom.xml 中添加 <dependency> <groupId>com.oracle</groupId> <artifactId>o原创 2018-08-27 15:32:41 · 1451 阅读 · 0 评论 -
Elasticsearch | es_分组-分页-TransportClient实现
说在前面:Elasticsearch Java API 有四种实现方式:分别是 TransportClient、RestClient、Jest、Spring Data Elasticsearch。本文使用第一种方式,也就是 TransportClient 的方式进行实现。想要了解其他三种的方式可以看一下这篇文章:https://blog.csdn.net/qq_33314107/article...原创 2018-12-21 17:05:42 · 2984 阅读 · 1 评论 -
Elasticsearch | ES常用操作--postman实现
ES常用操作–postman实现es-Range Aggregation(范围聚合)A multi-bucket value source based aggregation that enables the user to define a set of ranges-每个代表一个bucket。在聚合过程中,从每个文件中提取的值将根据每个存储区范围进行检查,并对相关/匹配文档进行“buck...原创 2019-03-26 08:00:43 · 7370 阅读 · 0 评论 -
Elasticsearch | Nested-VS-ParentJoin
本文整理自网络。parent-join 适用场景Child documents can be added, changed, or deleted without affecting either the parent or other children. This is especially useful when child documents are large in number a...原创 2019-05-30 07:18:17 · 992 阅读 · 0 评论 -
Elasticsearch | Elasticsearch如何做到亿级数据查询毫秒级返回?
如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较...转载 2019-06-05 08:59:53 · 617 阅读 · 0 评论 -
mongodb,redis,mysql 简要对比
mongodb,redis,mysql 简要对比本篇内容大部分不是原创,转载的会贴有链接。准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块。当下主流的要数NoSql数据库了,拥有强大的高并发能力。mongodb:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库。持久化转载 2017-05-22 10:07:42 · 1384 阅读 · 0 评论