- 博客(10)
- 收藏
- 关注

原创 JAVA开发过程中优雅地和第三方公司进行API对接需要注意的点!
前言通常我们的系统在与第三方系统对接的时候,有许多种方式实现:系统api接口、共享缓存、数据库共享、调用消息队列、页面跳转、共享数据文件等,在实际生产中,系统api接口的对接方式是占了很大部分的。最近,我负责公司电商系统关于多家第三方业务的对接,采用的对接方式也都是系统api接口对接,在这过程中有太多槽点需要去注意了。下面,介绍需要注意的几个大点。非技术对接需要注意的点:与第三方平台对接的时候,一定要积极和谐友善沟通,要是自己沟通不...
2020-08-27 20:42:45
4819
2
原创 Redis底层数据结构——压缩列表
压缩列表是什么Redis 中的压缩列表是由一系列特殊编码的连续内存块组成的顺序型数据结构。列表中每个节点可以存储一个字节数组或者一个整数值。它的存在主要是为了节约内存。压缩列表应用场景压缩列表在 Redis 中主要作为了 List 列表和 Hash 哈希两种数据结构的底层实现之一。在 List 列表中,要是列表中的存储元素数量少且每个元素是小的整数值或者长度较短的字符串,那么列表将使用压缩列表结构作为底层实现。在 Hash 哈希中,要是哈希中的存储键值对数量少且每个键值对的键和值是小的整数值或者
2020-12-16 22:45:31
423
原创 Redis底层数据结构——整数集合
整数集合是什么Redis 中的整数集合 intset 是用来保存多个不重复的整数值且有序的集合抽象数据结构,可以保存类型为 int16-t 、int32-t 或者 int64-t 的整数值。整数集合应用场景整数集合在 Redis 中作为了集合 Set 数据结构的底层实现之一。当一个集合中的元素都是整数值,且元素不多的时候,整数集合就会作为集合 Set 的底层实现。整数集合结构内容整数集合结构的具体代码:typedef struct intset { // 编码方式
2020-12-15 22:44:44
437
原创 Redis底层数据结构——跳跃列表
跳跃列表是什么跳跃列表 skiplist 是一种有序的数据结构。它在设计上,是通过每个节点中维持多个指向其他节点的指针,达到快速访问节点的效果。跳跃列表可以在时间复杂度为平均 O(logN) 或者最坏 O(N)两种情况下去查找节点,而且可以通过顺序性操作来批量处理了节点。跳跃列表应用场景双向链表、SDS、字典等数据结构都被较广泛地应用在了 Redis 的不同地方,而 Redis 中使用到跳跃列表的地方只有两个,一个是 Redis 的 Zset 数据类型,另一个是作为 Redis 集群节点中用作内部
2020-12-13 23:01:58
338
原创 Redis底层数据结构——字典
在字典中,一个键 key 和一个值 value 进行关联,通过这样的关系,称他们为键值对。而字典的内部数据结构基本是由多个键值对组成的。Redsi 使用 C 语言作为实现,但 C 语言不像其他大多语言把字典的数据结构内置,所以 Redis 实现了自己的专属字典结构。字典应用场景字典基本在 Redis 中是应用最广泛的,比如 Redis 的数据库就使用了字典作为了自己的底层实现,我们平时对数据库的增删改查都是建立在对字典的操作之上的。还有 Redis 经常使用的数据类型:Hash , Zset 也都使
2020-12-12 02:45:37
435
原创 Redis底层数据结构-双向链表
Redis 使用了 C 语言编写,但因 C 语言是没有内置链表这种结构的,所以 Redis 使用了双向链表结构作为自己需要的实现。众所周知,链表结构的好处在于不需要连续的的内存空间,以及在插入和删除的时间复杂度是 O(1) 级别的,效率较高,但比起数组它的缺点在于,查询效率上没有那么的高。双向链表内容Redis 中一个双向链表节点的样子:具体代码/* * 双向链表节点 */typedef struct listNode { // 前置节点的指针 struct li
2020-12-10 00:32:23
350
原创 Redis底层数据结构——SDS
SDS 是什么Redis 底层的程序语言是由 C 语言编写的,C 语言默认字符串则是以空字符结尾的字符数组(简称 C 字符串)。但 Redis 默认的字符串并非 C 字符串,而是名为 SDS ( Simple Dynamic String )简单动态字符串的抽象结构。Redis 采用一段连续的内存空间来存储 SDS 结构,具体结构如下图所示,free 代表指这个字符串剩余可用空间的长度,而 len 代表这个字符串已占用空间的长度,buf [] 就是字符数组。下面是一个字符串为 ‘Redis’ 在 S
2020-12-08 22:54:35
656
原创 JSONP-愉快解决跨域接口请求
平时我们在浏览器中请求不同域名的接口数据的时候,通常浏览器会在控制台报一个跨域异常,提示拒绝访问。这是因为受到了同源策略的影响。同源策略是什么同源策略是浏览器最核心也是最基本的安全功能,同源指的是两条URL在协议、域名和端口上都是相同的,一旦有其中一个条件是不同的,两者就是不同源。同源保证了两个同源的URL之间在浏览器上是可以相互访问资源和可以操作DOM的,不同源URL在浏览器上互相访问的时候,浏览器就会判断到不同源,就会出来制裁,拒绝访问。注意同源策源就只是浏览器行为,两个不同服务器接口互相访问,
2020-11-26 21:58:00
456
原创 几分钟看懂Base64编码原理
Base64简介Base64是基于64个可打印字符(小写字母a-z,大写字母A-Z,数字0-9,符号"+","/" 再加上作为垫字的"=",实际有65个字符,其他的所有字符都要转换成这个字符集中的字符),用来表示任意二进制数据的方法。Base64使用缘故在二进制数据的传输中,常常包含很多无法显示和打印的字符,想要他们正常显示出来,就需要一个二进制到字符串的转换方法。Base64就是一种最常见的二进制编码方法。常见应用就是Base64用于在HTTP协议下传输数据。由于HTTP协议是超文本传输协议,所以
2020-11-23 22:52:23
764
1
原创 分享我的网站使用Docker+二级域名的部署过程!
本网站使用阿里云服务器部署,涉及的技术栈有:Docker + Nginx + Vue + SpringBoot + MySql + 二级域名部署前知识难点:二级域名如何设置以及转发到对应的服务直接开干!在部署之前,首先在Linux服务器上安装Docker,以及先安装好Mysql对应版本的镜像,然后运行容器。将java工程对应的sql文件导入mysql。再将SpringBoot项目数据库连接到对应的服务器地址。部署api服务将SpringBoot工程打包,将jar包复制到/usr/hongcheng
2020-11-17 20:50:06
1285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人