暂时未有相关云产品技术能力~
暂无个人介绍
Redis的用途非常广泛。作为一个高性能的内存数据库,它经常被用于缓存的业务场景。 所谓缓存,即在第一次获取到数据的时候,把它暂存在内存中。这样下次需要这个数据的时候,就直接从内存中取,不用再去查询数据库或调用远程接口,这样可以极大地提高应用程序的性能。
众所周知,Redis是一个内存数据库。但它与其它内存数据库(如memcache)等有一个很大的区别,就是Redis可以持久化到磁盘。有了持久化方案,Redis就可以对数据进行备份、恢复、复制。
在应用系统的开发中,我们常常会有类似这样的需求:统计某个网站的UV、用户搜索网站关键词的数量等等。我们可以使用基数计数来做这个功能。基数计数通常用来统计一个集合中不重复的元素个数。
前面的文章介绍了Redis的五种最常用的对象及其底层的数据结构。这篇文章主要介绍一下一个不那么常用,却非常适用于一些特殊场景的对象:bitmaps。
以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。
“唯一ID”在应用程序中是一个很常见的需求,它用于唯一标识一个业务对象、一个资源、或者一个消息等等。在数据库中,唯一ID一般是用来做为一个数据的主键。看过前面介绍MySQL索引原理的文章的朋友应该知道,主键对于数据库的重要性不言而喻。 在单机场景下,要得到一个全局唯一的ID是非常容易的,你可以使用数据库的自增功能。
凡是涉及到分布式的系统,就会有负载均衡和数据分布的问题。为了让连接(或者数据)能够分布得更均匀,很多时候会使用到Hash算法。
在前面的文章里,分享了MySQL索引的原理及使用技巧、MySQL查询语句的优化等方面的知识。这些都是针对单个库的性能优化。在微服务和容器、云的时代,应用层可以很方便地水平扩展,用于支撑更大的并发量。
Google Guava库提供了许多比较有用的工具类,可以尝试了解使用一下。
总的来说,主要是针对MySQL本身的查询流程和引擎实现来做优化。但实际我们开发程序的时候,在应用层可以做缓存来优化性能,这样可以大大减少MySQL的请求和查询次数。 另一方面,MySQL的索引非常重要,理解索引的原理,创建合适的索引可以极大地提升查询的性能。使用索引的主要好处就是可以在查询的时候扫描更少的行。
“索引”是为了能够更快地查询数据。比如一本书的目录,就是这本书的内容的索引,读者可以通过在目录中快速查找自己想要的内容,然后根据页码去找到具体的章节。 数据库也是一样,如果查询语句使用到了索引,会先去索引里面查询,取得数据所在行的物理地址,进而访问数据。
Mysql是主流的开源关系型数据库,提供高性能的数据存储服务。我们在做后端开发时,性能瓶颈往往不是应用本身,而是数据库层面。所以掌握Mysql的一些底层原理有助于我们更好地理解Mysql,对Mysql进行性能调优,从而开发高性能的后端服务。
大家好,我是一段躺在Linux磁盘上的数据。
ArrayList有多个不同的构造函数,不同的构造函数的初始容量是不同的。
单例模式相信大家都不陌生,学习设计模式的时候,往往第一个要学习的就是单例模式。单例模式在Java中有许多实现,最常见的是“双重锁检测”、“静态内部类”以及“枚举”的实现方式。《Effective Java》推荐使用枚举的方式。
《刻意练习》是一本神奇的魔法书,它用大量的事实案例和数据来证明了刻意练习能给一个人带来的巨大改变。更为难能可贵的是,它不仅仅只是介绍刻意练习的好处,还给读者介绍了刻意练习的方法和注意事项,可以说是干货满满的一本书。
最近因为个人网站的文章浏览量计数在Chrome浏览器下有BUG,所以打算重新实现这个功能。
我们知道在Java中,一切对象都继承自java.lang.Object类。这个类中有一个可继承的方法叫hashCode()。
Java的异常算是Java语言的一个特色了。也是在日常编码中会经常使用到的东西。但你真的了解异常吗?