杂七杂八的总结---其他技术
目录
Redis
内存高速缓存数据库,使用 C 语言编写,典型的 NoSQL 数据库服务器, Redis 是一个 key-value 存储系统,它支持丰富的数据类型
优点:纯内存操作, Redis 的性能非常出色,且支持保存多种数据结构,具有原子性。
缺点:数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中, redis 不能提供服务。
Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以 redis 具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘 I/O 速度为严重影响 redis 的性能。
适合场景
- 会话缓存(Session Cache)
- 全页缓存(FPC)
- 队列
- 排行榜/计数器
- 发布/订阅
Memcache与Redis
Memcache | Redis | |
存储方式 | 全部在内存中,断电数据库挂掉 | 部分在硬盘,数据持久性 |
数据类型 | 类型相对简单 | 复杂数据类型 |
线程模型 | 多线程+锁 | 单线程+多路IO复用 |
value大小 | 1MB | 1GB |
数据类型
- String--字符串:简单的 key-value 类型, value 不仅可以是 String,也可以是数字
- Hash--字典
- List--列表
- Set--集合
- Sorted Set--有序集合:将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列。
持久化
RDB持久化:指定时间间隔内生成数据集的时间点快照---------最大化Redis的性能,恢复大数据集时更快,但服务器故障时可能会丢失好几分钟的数据。
AOF持久化:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。-----故障时,丢失数据少,但是文件体积很大,可能出现bug不能恢复数据。
无持久化:让数据只在服务器运行时存在。
同时应用AOF和RDB:重启时优先使用AOF文件还原数据集,通常AOF数据集更完整。
消息队列MQ
ActiveMQ
Apache 下的一个子项目。 类似于 ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于 RabbitMQ,它少量代码就可以高效地实现高级应用场景。
通信方式
点到点模式--消息发送失败时,会默认保存在服务端,直到有消费者将其消费,所以消息不会丢失。
发布订阅模式--默认情况下只通知一次,消息发送失败就没了。如果要求消息必须送达,需要配置持久订阅,每个订阅端定义一个 id,在订阅时向 activemq 注册。发布消息和接收消息时需要配置发送模式为持久化。此时 如果客户端接收不到消息,消
息会持久化到服务端,直到客户端正常接收后为止。
kafka
Apache 下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统。
特性:快速持久化、高吞吐、完全的分布式系统、支持 Hadoop 数据并行加载
Nginx
nginx会把 Request 在读取完整之前 buffer 住,这样交给后端的就是一个完整的 HTTP请求,从而提高后端的效率,而不是断断续续的传递。 同样, Nginx 也可以把response 给 buffer 住,同样也是减轻后端的压力。所以,nginx可以提升服务器性能。
Zookeeper
开放源码的分布式应用程序协调服务,目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、 功能稳定的系统提供给用户
基本运转流程:1、选举 Leader。 2、同步数据。 3、选举 Leader 过程中算法有很多,但要达到的选举标准是一致的。 4、 Leader 要具有最高的执行 ID,类似 root 权限。 5、集群中大多数的机器得到响应并 follow选出的Leader。
Solr
一个独立的企业级搜索应用服务器,是高性能,采用 Java5 开发,基于 Lucene 的全文搜索服务器。
Ik 分词器的分词原理本质上是词典分词。 先在内存中初始化一个词典,然后在分词过程中挨个读取字符,和字典中的字符相匹配,把文档中的所有的词语拆分出来的过程。
WebService
是一种跨编程语言和跨操作系统平台的远程调用技术。服务器和客户端可在不同的操作系统上使用不同的编程语言编写。
本文地址:https://blog.csdn.net/qq_39493274/article/details/107338267
下一篇: 设计模式(总纲)