简单的步骤用HTTPS保护你的WordPress网站
|
高效的数据结构 65 哥:学习 MySQL 的时候我知道为了提高检索速度使用了 B+ Tree 数据结构,所以 Redis 速度快应该也跟数据结构有关。 ”回答正确,这里所说的数据结构并不是 Redis 提供给我们使用的 5 种数据类型:String、List、Hash、Set、SortedSet。 在 Redis 中,常用的 5 种数据类型和应用场景如下:
上面的应该叫做 Redis 支持的数据类型,也就是数据的保存形式。「码哥字节」要说的是针对这 5 种数据类型,底层都运用了哪些高效的数据结构来支持。 65 哥:为啥搞这么多数据结构呢?
”当然是为了追求速度,不同数据类型使用不同的数据结构速度才得以提升。每种数据类型都有一种或者多种数据结构来支撑,底层数据结构有 6 种。 java自带的序列化机制效率太低,有很多缺点。因此涌现出了很多优秀的系列化框架,比如说protobuf、protostuff、thrift、hession、kryo、avro、fst、msgpack等等。这篇文章我们就看一下protobuf,给出一个简单案例,看看其是如何实现的。 注:若你对序列化概念和基本使用还有疑惑,可以翻看我之前的文章,或者百度一些基本概念和作用。 一、为什么要使用protobuf? 使用protobuf的原因肯定是为了解决开发中的一些问题,那使用其他的序列化机制会出现什么问题呢? (1)java默认序列化机制:效率极低,而且还能不能跨语言之间共享数据。 (2)XML常用于与其他项目之间数据传输或者是共享数据,但是编码和解码会造成很大的性能损失。 (3)json格式也是常见的一种,但是在json在解析的时候非常耗时,而且json结构非常占内存。 但是我们protobuf是一种灵活的、高效的、自动化的序列化机制,可以有效的解决上面的问题。 二、如何使用protobuf protobuf这么优秀使用起来也是非常的简单,我们可以给出其主要的三个步骤,然后使用一个基本的案例去实现一下。 (1)定义.proto文件:我们在这个文件中描述我们序列化的信息,类似于bean类。 (2)根据.proto生成对应的类文件,上面这个proto就像是一个模板,现在我们要根据这个模板创建出一个java类。 (3)序列化。 有了这个基本的步骤我们我们就具体去实现一下: 1、下载安装protobuf 第一步:下载解压 我的电脑是windows10,因此这里给出在windows下的使用,linux下面使用我也将在后续文章推出。我们首先下载protobuf(github上搜索protobuf,有各种语言可供选择)。选择protoc-3.9.0-win64.zip。下载完成之后解压到D:/protobuf目录下面就好了。 第二步:配置环境变量 也就是将D:protobufprotoc-3.9.0-win64bin配置到path环境变量里面。 第三步:验证是否安装成功 最后我们可以在cmd中输入protoc --version验证一下,是否成功。 OK,到这里我们就安装好了。 2、编写proto文件
之前我们说过proto 文件非常类似java的bean。在这里我们在bin目录下新建一个Person.proto文件(和proto.exe)。输入下列内容: (编辑:阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
