其他 >> Git | 经验 | Xshell | ES

MQ 消息队列

1天前 (2020-04-04) 11 浏览 评论

什么是队列?队列(Queue)是先进先出的线性数据结构。和堆栈一样的,队列只允许在后端进行插入操作:进队;在前端进行删除操作:出队。具体应用中通常用链表和数组来实现。什么是消息队列?消息队列,简称MQ(Message Queue)。我们可以简单理解为:把要传输的数据放在队列中。把数据放到消息队列叫做生产,发送消息的系统称为生产者。从消息队列取出数据叫做消费,接受消息的系统称为消费者。有哪些消息模式?JMS规范目前支持两种消息模式:点对点(Point To Point, queue)和发

Redis 缓存数据一致性的理解和方案

1天前 (2020-04-03) 11 浏览 评论

数据库和缓存读写顺序?在了解缓存数据一致之前,我们需要先了解数据库和缓存的读写顺序。最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。命中:程序先从缓存中读取数据,如果命中,则直接返回失效:程序先从缓存中读取数据,如果没有命中,则从数据库中读取,成功之后将数据放到缓存中更新:程序先更新数据库,然后再删除缓存关于更新操作,其实问题比较多。通常疑惑的就几种:1、我们不考虑更新缓存的原因:首先,并发情况下也可能出现数据不是最新的情况。其次,不确定要更新的这个缓存项是否会被经

Redis 缓存需要了解和注意的问题

2天前 (2020-04-03) 23 浏览 评论

Redis缓存想必大家都很熟悉,但是工作中可能使用到的地方都很片面,我们需要有个整体的认识。结合网上查询的和自己的理解,我们也具体总结下。什么是Redis?Redis是一个开源的底层使用C语言编写的key-value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)。为什么要使用Redis?高并发:单机缓存支持每秒QPS十几万,远远超过数据库;高性

Redis 并发竞争的理解和方案

2天前 (2020-04-03) 11 浏览 评论

Redis的并发竞争问题,主要是发生在并发写竞争。例如:两个连接同时对price进行写操作,同时加10,最终结果我们知道,应该为30才是正确。考虑到一种情况:T1时刻,连接1将price读出,目标设置的数据为10+10 = 20。T2时刻,连接2也将数据读出,也是为10,目标设置为20。T3时刻,连接1将price设置为20。T4时刻,连接2也将price设置为20,则最终结果是一个错误值20。怎么解决?主要思路就是把并行读写改成串行读写的方式,从而来避免资源竞争。| 分布式锁我们使用

RESTful API的理解

1星期前 (2020-03-27) 25 浏览 评论

说到 RESTful API,大部分人心中是有那么点概念的,但是让具体说说的话,又只能说出个大概,无非就是:前后端完全分离;无状态;统一数据格式返回等。这样的理解是片面的,这样的API勉强也算是REST架构设计,但是实际上可能没有满足REST约束条件和设计原则。所以参考网上简单总结了下:什么是REST?REST - Representational State Transfer,即:表述性(或表现层)状态转移。由于REST是面向资源的,全称 Resource&nbs

浏览器端和WEB服务端间的通信

2星期前 (2020-03-16) 28 浏览 评论

我们来了解下平时客户端请求接口的时候,是如何进行通信的,看下其过程:| 浏览器请求WEB服务端流程1、浏览器解析URL获取服务器主机名2、DNS将服务器主机名转换成其IP3、浏览器解析URL端口4、浏览器建立与WEB服务器的TCP连接5、浏览器向服务器发送HTTP报文6、服务器向浏览器回送HTTP报文7、关闭连接,浏览器显示数据| WEB服务端工作流程1、建立连接,接收客户端连接2、接收请求,读取HTTP报文3、处理请求,对报文进行解释,并采取行动。如:根据后缀判断该请求是P

Redis 缓存穿透、缓存雪崩、缓存击穿的理解和解决方案

1个月前 (2020-02-18) 54 浏览 评论

今天被问到缓存的一些问题,缓存穿透、缓存雪崩、缓存击穿这些专属名词还真没了解过。后来了解了下,这些的确是我们必须考虑的,之前没有接触过的确是不应该的,好在赶紧了解下。总结情况如下:| 缓存流程正常的缓存流程一般是这样的:1、发起请求->缓存存在->返回正常数据->End2、发起请求->缓存不存在->数据库存在->更新缓存->返回正常数据->End3、发起请求->缓存不存在->数据库不存在->返回空->End正常的用

ssh_exchange_identification: read: Connection reset by peer 解决方案

1个月前 (2020-02-07) 92 浏览 评论

今天Mac突然ssh连接不上自己的阿里云服务器了,报错:ssh_exchange_identification: read: Connection reset by peer 。更奇怪的是只有我当前wifi的ip连不上,换手机热点就没有问题。总结可能有以下几种可能:| 服务器防火墙拦截可能远端防火墙拦截自己的ip,我们通过阿里云控制台的workbench或者其他ip先登录到远端服务器,把自己的ip添加到防火墙白名单里面执行如下:# 添加白名单 vim /e

Mac 下ssh自动断开的解决方案

1个月前 (2020-02-06) 71 浏览 评论

Mac 下使用终端ssh连接远程服务器,总是空闲一会就自动断开了。有时候服务器响应太慢,即使写了shell脚本快速登录体验也贼差,半天才退出来。我们可以通过以下方式来解决:| 客户端配置我们修改Mac客户端ssh,两个文件选择修改一个就可以了:# 编辑如下文件(主机所有用户生效) $ sudo vim /etc/ssh/ssh_config # 编辑如下文件,不存在则创建(当前用户用户生效) $ sudo vim&n

RSA+AES 实现客户端和服务端交互数据加密

6个月前 (2019-09-23) 302 浏览 评论

现在接口大多是http请求,数据在请求过程中容易被抓包造成信息泄露或者数据被篡改。所以,数据传输过程中我们需要对敏感数据加密处理。在实现加密方法之前,我们需要先了解下加密算法,我们的加密方法都需要加密算法去支持。常用接口加密常用的就是 DES/AES/RSA/SHA1/MD5 等加密算法了。加密算法一般也就3种:对称加密算法、非对称加密算法、散列算法| DESDES对称加密算法,全称为 Data Encryption Standard,是一种使用密钥加密的块算法。加密串的长度是64位(