自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 java面试前整理知识点

## <center><b>java面试题总结</b></center>java并发篇 - - java如何开启一个线程?如何保证线程安全?<br/> 答:线程是计算机进行任务分配的最小单元,进程是计算机进行资源分配的最小单元。 <br/> java中可以直接继承Thread类来实现一个线程类,也可以实现Runable或者callable接口,把对象传给Thread构造函数来实现。 其中callable是带有返回值的。使.

2021-04-24 23:08:31 160

原创 Redis的单机持久化策略

Redis的单机持久化策略说明RDBRDB简介RDB工作方式RDB的使用方式说明redis是一个内存数据库,每次服务器重启的时候内存中的数据都会丢失。所以Redis提供了两种持久化方式:RDB和AOF。RDB持久化方式是Redis将内存的数据以快照的方式存到磁盘中,生成一个以rdb为后缀的文件。该文件是一个二进制的字节码文件,也就是内存的状态。AOF持久化方式是Redis将所有的写操作以操作日志的方式记录到文件中。Redis可以不开启持久化,也可以开启一个,也可以都开启。当都开启时会优先加载AOF文件

2020-09-12 20:32:45 251

原创 Redis指令组(三)

Redis指令组(三)简介hash指令组HSET、HMSETHGET、HMGET、HGETALLHSETNXHDELHEXISTSHINCRBY、HINCRBYFLOATHKEYSHLENHSTRLENHVALSHSCAN简介本篇介绍redis中hash类型的指令组。hash指令组HSET、HMSEThset: 设置key指定的hash中指定字段的值。hmset: hset的多field版本。HGET、HMGET、HGETALLhget: 获取key中指定字段的值。hmget: 获取

2020-09-07 20:56:47 1167

原创 Redis的指令组(二)

Redis的指令组(二)简介lists命令组LPUSH 、RPUSHLPOP、RPOPRPOPLPUSH、BRPOPLPUSH简介本篇文章将介绍redis的lists数据类型的指令组。redis中Lists是按插入顺序排序的字符串元素的集合。其底层实现是链表,这意味着lists在头尾插入元素会非常快,但是无法向数组那样通过下标快速的访问某个元素。通过redis的lists命令组可以很方便的实现一个栈,队列等数据结构。lists命令组LPUSH 、RPUSHlpush和rpush都是向一个链表头中添

2020-08-26 21:51:13 850

原创 Redis的bitmap的应用例子

Redis的bitmap的应用例子上篇博客介绍了redis14个指令组中的strings组中的所有指令,其中有很多关于bitmap的指令。bitmap的使用可以大大减少内存的使用,而且计算机对二进制的操作耗时非常的短。下面举几个例子,来具体说明一下bitmap的几个应用场景。...

2020-08-23 13:22:45 1493

原创 Redis的指令组(一)

Redis的5种类型之String写在前面简介与Memcached的对比写在前面简介上篇文章介绍了Redis的安装,官网上是这样介绍的,Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查

2020-08-16 23:01:42 1380

原创 Redis安装步骤

Redis安装步骤redis安装下载解压编译启动安装redis安装下载首先从reds的官方网站下载redis的源码,下面给出redis的网站。redis英文官网: http:www.redis.io英文网站官方提供6.0.6版本。redis中文网站: http:www.reids.cn中文网站目前主页提供的稳定版本的redis为5.0.5。中文网站跟英文网站的更新实时性上是有差距的,可以根据自己的情况自由选择。官方只有linux系统的redis版本,所以本教程也是在linux系统下操作,

2020-08-15 20:30:41 258

原创 从HashMap看红黑树

红黑树的性质定义树上的节点要么是红色,要么是黑色 根节点是黑色 每个叶子节点都是黑色的(所有的叶子节点都是NULL节点) 红色节点的子节点都是黑色的 任意一个节点到其子孙叶子节点的黑色节点的数量是相等的。下面是一个红黑树的图示: 从任意节点(不含该节点)到达一个叶节点的任意一条简单路径上的黑色节点个数称为该节点的黑高(block-height),计为bh(x)。根节点的黑高为树的黑高。红黑树的树高h(x)与黑高bh(x)的关系是bh(x) >= h(x)/2...

2020-08-10 00:09:25 272

原创 Java的ReentrantLock数据结构图解

ReentrantLock数据结构图解ReentrantLock总的来说是维护了一个等待队列(或者叫做同步队列)和若干个条件队列(取决于程序中创建了几个条件对象),队列里放的是一个个Node。下面通过ReentrantLock的类图来详细说明一下:从类图中可以看到ReentrantLock里面有一个Sync类型的sync对象,Sync是ReentrantLock的一个内部类,该内部类继承了AbstractQueuedSynchronizer(简称AQS)。AQS就是Lock维护的那个等待队列。.

2020-08-01 18:21:14 688

原创 ReentrantLock解锁流程

ReentrantLock解锁流程上篇介绍了ReentrantLock的加速流程,传送门:https://blog.csdn.net/qq_25178353/article/details/107568396有加锁就有解锁,接下来探讨一下解锁的流程。解锁流程总体来说比这加锁简单。先上流程图:解锁流程从调用lock.unlock()开始,lock.unlock()方法调用的是sync.release(1)方法,sync.release(1)的代码如下: public final bo.

2020-07-27 20:16:47 696

原创 ReentrantLock的加锁过程

ReentrantLock的加锁过程ReentrantLock是一个可重入的排他锁,他的加锁过程是通过cas操作完成的。ReentrantLock有三个内部类,分别是Sync , FairSync,NofairSync。其中后两者都继承了前者。通过他的内部类可以大概了解到ReentrantLock支持公平锁与非公平锁。废话不多说,先看一下ReentrantLock的非公平锁加锁的流程图。下面按照流程图结合代码来说明一下...

2020-07-24 20:05:45 848

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除