
非关系型数据库
文章平均质量分 89
Redis、es、mongoDB
1.01^1000
记录一些给自己看的笔记,不断的总结积累
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[022-07].第07节:ElasticSearch中HTTP操作 - 映射+索引+文档的CRUD
2.Postman方式添加映射: 向 ES 服务器发。,添加的数据格式为 JSON 格式。5.多条件组合查询,条件是。6.多条件组合查询,条件是。条件查询的基础上添加了。不会立即从磁盘上移除。原创 2024-07-15 18:05:04 · 1026 阅读 · 0 评论 -
[022-06].第06节:ElasticSearch核心概念
是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是。虽然要先查询倒排索引,再查询倒排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快!逐行扫描,也就是全表扫描,随着数据量增加,其查询效率也会越来越低。当数据量达到数百万时,就是一场灾难。则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。倒排索引的概念是基于MySQL这样的正向索引而言的。以搜索"华为手机"为例。相同类型的文档的集合。原创 2024-08-16 22:41:24 · 964 阅读 · 0 评论 -
[000-01-018].第09节:Elasticsearch 优化
使用 SSD使用 RAID 0。原创 2024-07-30 22:04:45 · 1049 阅读 · 0 评论 -
[022-02].第02节:Elasticsearch是什么
1.Elasticsearch底层是基于lucene来实现的,它是一个开源的高扩展的分布式全文搜索引擎2.Elasticsearch它可以近乎实时的存储、检索数据3.Elasticsearch本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据;4.Elasticsearch是整个 ElasticStack 技术栈的核心,可以用来实现数据的存储、搜索、日志统计、系统监控、分析各种数据。原创 2024-04-16 08:23:18 · 944 阅读 · 0 评论 -
[022-6].elasticsearch基础3——补全、集群
1.聚合:可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?2.实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果1.要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。原创 2024-06-15 10:52:47 · 1026 阅读 · 0 评论 -
ES与MySQL数据同步实现方式
1.Elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,Elasticsearch也必须跟着改变,这个就是Elasticsearch与mysql之间的。原创 2024-08-20 21:37:13 · 1390 阅读 · 0 评论 -
[008-05].第5节.文章评论
/SpringBoot的Junit集成测试//SpringBoot的测试环境初始化,参数:启动类//注入Service@Autowired/*** 保存一个评论*/@Testcomment.setContent("测试添加的数据");comment.setNickname("凯撒大帝");/*** 查询所有数据*/@Test/*** 测试根据id查询*/@Test。原创 2024-06-10 16:15:02 · 980 阅读 · 0 评论 -
[021-07].第08节:Elasticsearch的RestClient查询文档
2.上述代码省略了查询条件部分,但是大家不要忘了:高亮查询必须使用全文检索查询,并且要有搜索关键字,将来才可以对关键字高亮。原创 2024-09-21 14:08:22 · 1172 阅读 · 0 评论 -
[022-03].第03节:WinDows下Elasticsearch环境搭建
3.启动前先删除每个节点中的 data 目录中所有内容(如果存在)4.分别双击执行 启动节点服务器,启动后,会自动加入指定名称的集2.2.Linux环境:a.单机版(已搭建):a1.ES7.8版本安装:1.下载与解压:解压压缩包:2.将文件名更改成es-cluster::3.将软件分发到另外两台服务器上:- 4.创建用户: 因为安全问题,,所以5.修改配置文件:修改 文件,分发文件:6.修改7.修改8.修改9.原创 2024-06-15 10:48:57 · 1117 阅读 · 0 评论 -
[022-06].第09节:Elasticsearch中的Query DSL
match_all查询类型【代表查询所有的索引】,es中可以在query中组合非常多的查询类型完成复杂查询;除了query参数之外,我们可也传递其他的参数以改变查询结果,如sort,size;from+size限定,完成分页功能;sort排序,多字段排序,会在前序字段相等时后续字段内部排序,否则以前序为准;1.先安装nginx:随便启动一个 nginx 实例,只是为了复制出配置2.将容器内的配置文件拷贝到当前目录把这个 conf 移动到下。原创 2024-06-15 10:51:19 · 638 阅读 · 0 评论 -
索引的底层原理
索引(Index)是帮助MySQL高效获取数据的数据结构。2.索引的本质:索引是数据结构。可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。这些数据结构以某种方式指向数据, 这样就可以在这些数据结构的基础上实现高级查找算法3.索引是在存储引擎中实现的,所以每种存储引擎的索引不一定完全相同,并且每种存储引擎不一定支持所有的索引类型。4.存储引擎可以定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少256字节。原创 2024-08-18 20:51:47 · 1641 阅读 · 0 评论 -
[0405].第05节:搭建Redis主从架构
1.集群初识状态是这样的:其中7001、7002、7003都是master,我们计划让7002宕机。原创 2025-01-10 15:21:37 · 1360 阅读 · 0 评论 -
MySQL对事务的支持
存储引擎存储引擎是否支持事务。原创 2024-08-17 17:22:05 · 1099 阅读 · 0 评论 -
[022-01].第01节:Elastic Stack初识
1.ELK是一个免费开源的日志分析架构技术栈总称,包含三大基础组件,分别是2.ELK可适用于日志分析、数据搜索、数据分析和收集等一些场景,比如日志分析和收集是更具有代表性的应用3.ELK是由包含了Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个整体。主要用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana),其中Logstash是负责数据的收集,ES是数据的存储,Kibana是负责数据的展示。原创 2024-06-15 10:56:19 · 821 阅读 · 0 评论 -
[023-8].第8节:SpringBoot中的运维实用篇
配置文件的名字现在都是application.yml,甲方想要自定义名字,防止后人后门篡改,保护信息安全。原创 2021-09-11 14:56:07 · 53 阅读 · 0 评论 -
[3-05-29].第24节:数据类型应用 - 短信验证码的登录注册功能
名称说明请求方式POST请求路径/usr/login请求参数phone:电话号码,code:验证码返回值无。原创 2023-05-09 22:30:38 · 87 阅读 · 0 评论 -
[000-01-018].ES与SpringBoot框架集成
1.Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce 框架和云计算数据服务。可以极大的简化 JPA(Elasticsearch„)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等一些常用的功能。2.Spring Data 的官网。原创 2024-06-15 10:55:01 · 362 阅读 · 0 评论 -
[000-01-018].第3节:Linux环境下ElasticSearch环境搭建
部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有。kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。原创 2024-08-20 09:16:51 · 1782 阅读 · 0 评论 -
lettuce客户端操作redis
【代码】lettuce客户端操作redis。原创 2025-06-04 17:52:55 · 288 阅读 · 0 评论 -
[021-07].第08节:Elasticsearch中使用RestAPI实现索引与文档的CRUD
我们在导入酒店数据时,将代码中查询到的数据放在集合中进型循环,在往ES中看写入的数据的时候,代码改造成for循环处理即可。在Elasticsearch提供的API中,与Elasticsearch一切交互都封装在一个名为。5.因此Bulk中添加了多个IndexRequest,就是批量新增功能了。1.新建索引库实体类,数据库查询后的结果是一个Hotel类型的对象。我们要将数据库的酒店数据查询出来,写入Elasticsearch中。,建立与Elasticsearch的连接。3.ES中搜索多字段的值,使用。原创 2024-07-15 18:08:27 · 398 阅读 · 0 评论 -
[3-02-01].第03节:环境搭建 - 在Docker中安装部署Redis环境:
原创 2025-06-11 16:35:46 · 251 阅读 · 0 评论 -
[3-02-01].第28节:应用场景 - BloomFilter布隆过滤器
1.布隆过滤器是由一个很长的初始值都为0的二进制数组(00000000)和多个哈希函数构成用来快速判断集合中是否存在某个元素不保存数据信息,只是在内存中做一个是否存在的标记flag。其 本质就是判断具体数据是否存在于一个大的集合中3.布隆过滤器是一种类似set的数据结构,只是统计结果在巨量数据下有顶瑕疵,不够完美!布隆过滤器(Bloom Filter) 是一种专门用来解决去重问题的高级数据结构,其实质就是一个大型位数组和几个不同的无偏hash函数(无偏表示分布均匀)。原创 2025-06-10 13:43:39 · 538 阅读 · 0 评论 -
[3-02-01].第25节:应用场景 - 关注推送(Feed流推送)
1.关注推送也叫做Feed流,直译为投喂。为用户持续的提供“沉浸式”的体验,通过无限下拉刷新获取新的信息2.Feed流是一种基于用户个性化需求和兴趣的信息流推送方式,常见于社交媒体、新闻应用、音乐应用等互联网平台3.Feed流通过算法和用户行为数据分析,动态地将用户感兴趣的内容以流式方式呈现在用户的界面上。原创 2025-06-04 23:26:23 · 653 阅读 · 0 评论 -
[3-02-01].第22节:应用场景 - 发布和查看探店笔记 + 点赞排行笔记
原创 2024-09-06 14:46:23 · 452 阅读 · 0 评论 -
[3-02-01].第23节:应用场景 - 发布和查看探店笔记 + 点赞排行笔记(与Redis无关)
1.实现查询博客详情和热点博客:三、博客点赞:3.1.需求介绍:同一个用户只能点赞一次,再次点击则取消点赞如果当前用户已经点赞,则点赞,按钮高亮显示(前端已实现,判断字段Blog类的isLike属性)3.2.实现步骤:给Blog类中添加一个isLike字段,标示是否被当前用户点赞修改点赞功能,利用Redis的set集合判断是否点赞过,未点赞过则点赞数+1,已点赞过则点赞数-1修改根据id查询Blog的业务,判断当前登录用户是否点赞过,赋值给isLike字段修改分页查询Blog原创 2024-09-06 14:45:15 · 330 阅读 · 0 评论 -
搭建哨兵架构
【代码】搭建哨兵架构。原创 2025-04-21 14:02:50 · 342 阅读 · 0 评论 -
[3-06-06].第06节.MongoDB应用 - 索引Index的应用
官网文档对索引的介绍1.索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。2.如果查询存在适当的索引,MongoDB可以使用该索引限制必须检查的文档数3.索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段值排序。原创 2024-06-10 16:08:28 · 638 阅读 · 0 评论 -
[3-06-05].第05节.MongoDB应用 - 基本常用命令
【代码】[3-06-05].第05节.MongoDB应用 - 基本常用命令。原创 2024-06-10 16:06:35 · 626 阅读 · 0 评论 -
[3-06-04].第04节.环境搭建 - Windows单机部署
【代码】[3-06-04].第04节.环境搭建 - Windows单机部署。原创 2024-06-10 16:09:24 · 629 阅读 · 0 评论 -
[3-06-01].第01节.MongoDB初识 - MongoDB相关概念
1.MongoDB是一个开源、高性能、无模式的文档型数据库,最初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种所谓的无模式指的是:数据库不强制要求预先定义严格的表结构(即固定的字段和数据类型)2.MongoDB是最像关系型数据库(MySQL)的非关系型数据库3.MongoDB支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON`,所以它既可以存储比较复杂的数据类型,又相当的灵活4.MongoDB中的记录是一个文档,它。原创 2024-06-10 16:03:33 · 730 阅读 · 0 评论 -
[3-02-01].第27节:应用场景 - Bitmap用户签到
bitmap我们可以称之为是位图,是由0和1表现的二进制位的bit数组位图本质是数组,它是基于String数据类型的按位的操作。该数组由多个二进制位组成,每个二进制位都对应一个偏移量(我们可以称之为一个索引或者位格)。Bitmap支持的最大位数是2^32位,它可以极大的节约存储空间,使用512M内存就可以存储多大42.9亿的字节信息(原创 2024-10-23 17:36:00 · 537 阅读 · 0 评论 -
[5-02-31].第31节:Redis多级缓存实战
1.进入mysql目录后,执行下面的Docker命令:1.在目录添加一个文件,作为的配置文件:2.文件的内容如下:1.配置修改后,必须重启容器:1.接下来,利用Navicat客户端连接MySQL,然后导入sql文件:1.其中包含两张表:tb_item:商品表,包含商品的基本信息tb_item_stock:商品库存表,包含商品的库存信息2.把像经常变更的字段单独放在一张表中,我之所以将库存分离出来,是因为,而其他信息修改的频率非常低。防止了缓存频繁失效原创 2022-01-23 15:13:50 · 127 阅读 · 0 评论 -
[3-02-01].第28节:应用场景 - 商家查询的缓存功能
redis缓存功能原创 2023-05-09 22:14:19 · 70 阅读 · 0 评论 -
[5-02-34].第34节:使用传统锁解决超卖现象
一个sql > 悲观锁 > jvm锁 > 乐观锁如果追求极致性能、业务场景简单并且不需要记录数据前后变化的情况下。优先选择:一个sql如果写并发量较低(多读),争抢不是很激烈的情况下优先选择:乐观锁如果写并发量较高,一般会经常冲突,此时选择乐观锁的话,会导致业务代码不间断的重试。优先选择:mysql悲观锁不推荐jvm本地锁。原创 2023-04-23 17:15:17 · 16 阅读 · 0 评论 -
[5-02-33].第33节:超卖场景的工程搭建
1.多线程并发安全问题最典型的代表就是超卖现象,库存在并发量较大情况下很容易发生超卖现象,一旦发生超卖现象,就会出现多成交了订单而发不了货的情况。2.场景:商品S库存余量为5时,用户A和B同时来购买一个商品,此时查询库存数都为5,库存充足则开始减库存:用户A:update db_stock set stock = stock - 1 where id = 1用户B:update db_stock set stock = stock - 1 where id = 1。原创 2024-09-07 14:52:05 · 1096 阅读 · 0 评论 -
[5-02-42].第42节:Redlock算法和底层源码分析
1.解决集群下锁失效,参照redis官方网站针对redlock文档:https://redis.io/topics/distlock2.在算法的分布式版本中,我们假设有N个Redis服务器。这些节点是完全独立的,因此我们不使用复制或任何其他隐式协调系统。**前几节已经描述了如何在单个实例中安全地获取和释放锁,在分布式锁算法中,将使用相同的方法在单个实例中获取和释放锁。**将N设置为5是一个合理的值,因此需要在不同的计算机或虚拟机上运行5个Redis主服务器,确保它们以独立的方式发生故障。原创 2024-09-11 18:48:57 · 875 阅读 · 0 评论 -
[5-02-43].第43节:redisson中的分布式锁
1.Redisson是一个在Redis的基础上实现的Java驻内存数据网格2.redisson介绍官方文档地址3.Redisson它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务包括(Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。1.基于Redis的Redisson分布式可重入锁RLockJava对象实现了。原创 2024-09-07 10:02:05 · 1152 阅读 · 0 评论 -
[3-02-01].第46节:分布式锁应用 - 全局ID生成器
1.全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具1.表关系如下:tb_voucher:优惠券的基本信息,优惠金额、使用规则等:优惠券的库存、开始抢购时间,结束抢购时间。特价优惠券才需要填写这些信息。原创 2023-05-09 22:18:35 · 124 阅读 · 0 评论 -
[5-02-47].第47节:Redis最佳实践
1.Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定:[业务名称]:[数据名]:[id]长度不超过44字节不包含特殊字符1.BigKey通常以Key的大小和Key中成员的数量来综合判定,例如:Key本身的数据量过大:一个String类型的Key,它的值为5 MBKey中的成员数过多:一个ZSET类型的Key,它的成员数量为10,000个Key中成员的数据量过大:一个Hash类型的Key,它的成员数量虽然只有1,000个但这些成员的Value(值)总大小为100 MB。原创 2024-04-12 22:12:34 · 645 阅读 · 0 评论 -
[5-02-50].第50节:主从架构中数据复制原理
【代码】[5-02-50].第50节:主从架构中数据复制原理。原创 2024-10-22 16:19:46 · 653 阅读 · 0 评论