欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

杂七杂八的总结---其他技术

程序员文章站 2022-06-27 19:48:56
目录Redis适合场景Memcache与Redis数据类型持久化消息队列MQActiveMQ通信方式kafkaNginxZookeeperSolrWebServiceRedis内存高速缓存数据库,使用 C 语言编写,典型的 NoSQL 数据库服务器, Redis 是一个 key-value 存储系统,它支持丰富的数据类型优点:纯内存操作, Redis 的性能非常出色,且支持保存多种数据结构,具有原子性。缺点:数据库容量受到物理内存的限制,不...

目录

Redis

适合场景

Memcache与Redis

数据类型

持久化

消息队列MQ

ActiveMQ

通信方式

kafka

Nginx

Zookeeper

Solr

WebService


Redis

内存高速缓存数据库,使用 C 语言编写,典型的 NoSQL 数据库服务器, Redis 是一个 key-value 存储系统,它支持丰富的数据类型

优点:纯内存操作, Redis 的性能非常出色,且支持保存多种数据结构,具有原子性

缺点:数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中, redis 不能提供服务。

Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以 redis 具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘 I/O 速度为严重影响 redis 的性能。

适合场景

  1. 会话缓存(Session Cache)
  2. 全页缓存(FPC)
  3. 队列
  4. 排行榜/计数器
  5. 发布/订阅

Memcache与Redis

  Memcache Redis
存储方式 全部在内存中,断电数据库挂掉 部分在硬盘,数据持久性
数据类型 类型相对简单 复杂数据类型
线程模型 多线程+锁 单线程+多路IO复用
value大小 1MB 1GB

数据类型

  1. String--字符串:简单的 key-value 类型, value 不仅可以是 String,也可以是数字
  2. Hash--字典
  3. List--列表
  4. Set--集合
  5. 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

相关标签: Java