随笔分类 - 中间件
Redis、ElasticSearch、Kafka、Zookeeper
摘要:# 1. Logstash  Logstash 是一个数据抽取工具,将数据从一个地方转移到另一个地方。如 hado
阅读全文
摘要:# 1. 分析数据 ## 1.1 What's analysis? - 倒排索引:索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为“倒排索引”。 指的是其搜索和索引的实时性特性。尽管 ES 可以快速地将数据写入并使其可搜索,但它并不是严格的实时系统,而是接近实时(Near Real-Time),通常延迟在 1s 左右。这种延迟主要与其内部架构和数据处理机
阅读全文
摘要:1. 中文分词 “分词器”主要应用在中文上,在 ES 中字符串类型有 keyword 和 text 两种。keyword 默认不进行分词,而 ES 本身自带的中文分词会把 text 中每一个汉字拆开称为独立的词,这根本没有词汇的概念,就是单纯把中文一个字一个字的分开。这两种都是不适用于生产环境。 实
阅读全文
摘要:# 1. HTTP 操作  ## 1.1 索引操作 ### a. 创建索引 在 Lucene 中,创建索引是需要定义
阅读全文
摘要:1. 引入 1.1 什么是搜索? 比如说我们想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜欢的电影,或者说找一本喜欢的书,或者找一条感兴趣的新闻。这是提到搜索的第一印象,但要注意,百度 != 搜索。 互联网的搜索:电商网站,招聘网站,新闻网站,各种 app IT 系统的搜索:OA
阅读全文
摘要:摘自公众号: 腾讯技术工程 1. 什么是 Redis? Redis 是一个开源、基于内存、使用 C 语言编写的 key-value 数据库,并提供了多种语言的 API。它的数据结构十分丰富,基础数据类型包括:string(字符串)、list(列表,双向链表)、hash(散列,键值对集合)、set(集
阅读全文
摘要:1. 集群方案比较 【哨兵模式】在 Redis3.0 以前的版本要实现集群一般是借助哨兵 Sentinel 工具来监控 Master 节点的状态,如果 Master 节点异常,则会做主从切换,将某一台 Slave 作为 Master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主
阅读全文
摘要:1. 主从复制 主从复制,就是主机数据更新后根据配置和策略,自动同步到备机的 Master-Slave 机制,Master 以写为主,Slave 以读为主。 和 MySQL 主从复制的原因一样,Redis 虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis 支持主
阅读全文
摘要:Redis 提供了 2 个不同形式的持久化方式:RDB(Redis DataBase),AOF(Append Of File) 1. RDB(Redis DataBase)快照 在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置
阅读全文
摘要:1. 事务定义 Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞。 在一个队列
阅读全文
摘要:1. Redis 分布式锁 Redis 分布式锁实现:使用 Lua 脚本结合使用 SETNX 和 EXPIRE 这两个命令。 1.1 锁续期 业务超时锁释放导致「错误解锁」: 业务超时锁释放导致「业务并发执行」: Redis 实现分布式锁如何合理的控制锁的有效时长? =>【锁续期/锁续命】 给拿到锁
阅读全文
摘要:# units 计量单位说明:只支持 bytes,不支持 bit;对大小写不敏感。  # include 指定包含其
阅读全文
摘要:0. Redis 基本指令 keys * 查询当前库的所有键 exists <key> 判断某个键是否存在 type <key> 查看键的类型 dbsize 查看当前数据库的 key 的数量 del <key> 删除某个键 flushdb 清空当前库 flushall 通杀所有库 1. string
阅读全文
摘要:Redis:KV + Cache + Persistence(持久化) 1. 简介 Redis(REmote DIctionary Server)是一个开源的内存中的 key-value 存储系统,它可以用作:数据库、缓存和消息中间件。 用 C 语言编写的,遵守 BSD 协议,是一个高性能的 key
阅读全文
摘要:# 1. 缓存基本思想 ## 1.1 使用场景 **(1)DB 缓存,减轻服务器压力** 一般情况下数据存在数据库中,应用程序直接操作数据库。 当访问量上万,数据库压力增大,可以采取的方案有: 1. 读写分离,分库分表; 2. 当访问量达到十万、百万,需要引入缓存。将已经访问过的内容或数据存储起来,
阅读全文
